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