У меня есть 4 устройства UART, и я хочу одновременно просматривать их выходные данные. Я использую следующий скрипт для выполнения этой работы:
# first kill the cat process from last run
killall -v cat
for i in `seq 0 3`; do
cat /dev/crbif0rb0c$(i}ttyS0 | grep . --line-buffered &
# cat /dev/crbif0rb0c$(i)ttyS0 &
done
Но я не получаю никакого результата от этого скрипта, кроме множества пустых строк. Когда я удаляю материал grep
и использую вторую строку в цикле for, я получаю много выходных данных, но нечитаемых, поскольку все выходные данные испорчены.
Итак, мой вопрос: почему нет вывода (кроме пустых строк), когда я использую grep? Или кто-нибудь может предоставить лучшие (и работоспособные) решения для моего сценария?
Заранее спасибо!
[ОБНОВЛЕНИЕ] Я неожиданно обнаружил, что cat /dev/crbif0rb0c${i}ttyS0 | grep ^ --line-buffered &
будет работать. Не знаю, почему...