回声没有换行符

-bash-4.1# cat output
"/root/mail/domain.com/root/Archive Dir.2012.04 April"

for i in `cat output`; do echo "$i"; done
"/root/mail/domain.com/root/Archive
Dir.2012.04
April"

我希望它们在一行中,因为它们最初存储在文件中。 这是回声的错吗?
echo -n会打破一切,所以它不会。

你可以使用while循环

 while read i do echo $i done < output 

你的命令不能如你所期望的那样工作的原因是for单词的操作。 $ IFSvariables的值确定使用哪些字符来分隔单词,缺省值是spacetabnewline 。 因为你的input文件包含有空格的行,所以它们被分成单词。 如果你需要使用for循环,你可以通过在"

 for i in "`cat output`" do echo "$i" done 
 while read line; do echo $line; done < output