在 bash 中,为了将一个命令的输出保存到变量中,通常是两种写法:
result=`ls -al`
或
result=$(ls -al)
如果命令中的输出只有一行,一切皆没有问题,比如
result=$(ls -al | wc -c)
整个命令的输出是一个数字,看起来一切正常。
但我们运行以下脚本时,输出的结果是一团糟:
result=$(ls -al)
echo $result
发现输出的结果中,换行符被替换成了空格,一个多行的输出变成了一行!
解决办法:
result=$(ls -al)
echo “$result”
这样输出就正常了。