Назад | Перейти на главную страницу

Как скормить переменную с концом строк на стандартный ввод другого приложения в bash?

Есть ли (простой) способ передать переменную с концом строк в другую программу на BASH? Рассмотрим пример:

flist=$(ls -l)
echo $flist

echo заменит все концы строк пробелами, поэтому мой вывод будет отличаться от содержимого переменной. Другой пример:

echo $flist | grep myfile.txt

Эта команда не будет работать должным образом, чтобы выводить только информацию о myfile.txt. Как распечатать строку, содержащую myfile.txt.


Вот одно из решений:

cat << EOF | grep myfile.txt       
$flist
EOF

Что-нибудь менее уродливое?

Проблема не в echo, это оболочка. Попробуйте использовать двойные кавычки:

echo "$flist" | grep myfile.txt

Должно работать нормально.