Mic*_*alH 9 shell bash echo command-substitution
当我做ls | grep png
grep 的输出是:
2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png
Run Code Online (Sandbox Code Playgroud)
(文件名,换行符,文件名,换行符)
然后,echo $(ls | grep png)
输出:
2015-05-15-200203_1920x1080_scrot.png 2015-05-16-025536_1920x1080_scrot.png
Run Code Online (Sandbox Code Playgroud)
(文件名,来自分词的空间,文件名,换行符!!来自回声!!)
没关系,但是当我这样做以防止分词时:echo "$(ls | grep png)"
,输出是:
2015-05-15-200203_1920x1080_scrot.png
2015-05-16-025536_1920x1080_scrot.png
Run Code Online (Sandbox Code Playgroud)
我的问题是,第二个换行符在哪里(一个应该来自 grep,一个来自 echo)?
那是来自 的换行符echo
,您可以通过使用echo -n
抑制尾随换行符来验证:
echo -n "$(ls | grep png)"
Run Code Online (Sandbox Code Playgroud)
命令替换删除所有尾随换行符,最后一个换行符由echo
,grep
在此处无关。