Sign up ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

Is there a (simple) way to feed variable with end of lines to other program in BASH? Consider example:

flist=$(ls -l)
echo $flist

echo will replace all end of lines with spaces, so my output will be different from the content of the variable. Other example:

echo $flist | grep myfile.txt

This command will not work as expected to output only information about myfile.txt. How do I print the line that contains myfile.txt.

Here is one solution:

cat << EOF | grep myfile.txt       

Anything less ugly?

share|improve this question

1 Answer 1

up vote 4 down vote accepted

The problem is not echo, is the shell. Try to use double quotes:

echo "$flist" | grep myfile.txt

Should work fine.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.