Bash Shell脚本:命令输出保存到变量后变为一行
我想多次处理命令的输出(出于不同的目的) 但是,在将输出保存到变量中之后,原来的多行输出被压缩到一行中 例如:Bash Shell脚本:命令输出保存到变量后变为一行,bash,shell,Bash,Shell,我想多次处理命令的输出(出于不同的目的) 但是,在将输出保存到变量中之后,原来的多行输出被压缩到一行中 例如: $ l=`ll` $ echo $l total 1408 -rwxrwxr-x. 1 xiaohan xiaohan 229 Oct 7 22:50 run.sh -rwxrwxr-x. 1 xiaohan xiaohan 229 Oct 7 22:56 test.sh -rwxrwxr-x. 1 xiaohan xiaohan 1326459 Oct 2 17:29 TMalig
$ l=`ll`
$ echo $l
total 1408 -rwxrwxr-x. 1 xiaohan xiaohan 229 Oct 7 22:50 run.sh -rwxrwxr-x. 1 xiaohan xiaohan 229 Oct 7 22:56 test.sh -rwxrwxr-x. 1 xiaohan xiaohan 1326459 Oct 2 17:29 TMalign -rw-r--r--. 1 xiaohan xiaohan 104175 Oct 2 17:29 TMalign.f
从上面的示例中可以看到,输出变为一行
这里发生了什么?如何将输出恢复为原来的多行格式?除非将变量用双引号括起来,否则它的扩展将经历分词,这将导致所有空格序列都折叠为单个分词。所以写下:
echo "$l"
通常应该引用变量,除非您知道您所处的上下文需要对其进行分词和通配符扩展。除非您将变量用双引号括起来,否则它的扩展将经历分词,这会导致所有空格序列折叠为单个分词。所以写下:
echo "$l"
通常应该引用变量,除非您知道您所处的上下文中需要对其进行分词和通配符扩展。您是否尝试了echo“$l”
?是否尝试了echo“$l”
?