Есть ли (простой) способ передать переменную с концом строк в другую программу на 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
Должно работать нормально.