Как передать вывод команды другим командам?
Пример:
ls | echo
ничего не печатает (на самом деле пустая строка). Я бы ожидал, что он напечатает список файлов.
ls | grep 'foo'
, с другой стороны, работает так, как ожидалось (печатает файлы с 'foo' в их названии).
Что я делаю в таких ситуациях, это что-то вроде:
ls | while read OUT; do echo $OUT; done
но это довольно громоздко.
Почему конвейер работает с некоторыми командами, но не с другими? Как я могу обойти эту проблему?