当我执行ls | grep png
grep 的输出时:
2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png
(文件名,换行符,文件名,换行符)
然后,echo $(ls | grep png)
输出:
2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png
(文件名、分词空格、文件名、换行符!!来自 echo!!)
没关系,但是当我这样做是为了防止分词:时echo "$(ls | grep png)"
,输出是:
2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png
我的问题是,第二个换行符在哪里(一个应该来自 grep,一个来自 echo)?
答案1
这是来自 的换行符echo
,您可以通过使用echo -n
抑制尾随换行符来验证:
echo -n "$(ls | grep png)"
命令替换删除所有尾随换行符,最后一个换行符是由 添加的echo
,grep
与此处无关。