Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Shell脚本:命令输出保存到变量后变为一行_Bash_Shell - Fatal编程技术网

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”