在shell 中用两个命令构建字符串时每个命令的结尾空行会被移除

如下的字符串中包含有$()两个命令,且第一个命令在单独执行时是有换行的。

echo "$(date; echo "\n")$(ping -c 1 www.qq.com)"

但整体的输出结果$()两个命令的输出结果之间却没有换行符。

而再次测试在当个命令的头部插入换行符,

echo "$(echo "\n"; date)$(ping -c 1 www.qq.com)"
echo "$(date)$(echo "\n"; ping -c 1 www.qq.com)"

结果显示,空行却能加在每个命令的前面。

而直接将换行符 \n 作为分隔符放在两个命令的中间亦可以取得换行分隔的效果,如

echo "$(date)\n$(ping -c 1 www.qq.com)"

(End)

关于本文如您有任何想法和意见,欢迎与我们联系,邮箱地址zhi@uqugu.com
您对本文有什么看法,喜欢或者不喜欢都可以发表意见。