以下代码最能说明情况。为什么最后一行不输出尾随换行符char?每行的输出显示在注释中。我正在使用4.1.5版的GNU bash
echo -n $'a\nb\n' | xxd -p # 610a620a
x=$'a\nb\n' ; echo -n "$x" | xxd -p # 610a620a
echo -ne "a\nb\n" | xxd -p # 610a620a
x="$(echo -ne "a\nb\n")" ; echo -n "$x" | xxd -p # 610a62
@Gilles:上面是您的示例:
—
Peter.O 2011年
tmp=$(somecommand; echo a)
...这肯定使人们明白了这一点...在我看到示例之前,我的倾向仍然是使用echo -n a
...但是,当然!,不需要的-n
,因为命令替换将删除推出换行符在任何情况下!...谢谢...
tmp=$(somecommand; echo a); tmp=${tmp%a}