在命令输出上打印换行符

jhe*_*ran 4 command-line bash

如果我得到变量上命令的结果,如何用新行打印此输出。愚蠢的例子:

XX=$(ls -l); echo $XX
Run Code Online (Sandbox Code Playgroud)

当我执行上面的句子时,我得到一行难以辨认的结果,而不是我ls -l在终端上执行时看到的格式化返回。有什么方法可以获取格式化命令的结果或用换行符显示其结果吗?

cuo*_*glm 5

您需要双引号以使 shell 不执行字段分割

XX="$(ls -l)"; echo "$XX"
Run Code Online (Sandbox Code Playgroud)

echo但是与不知道其内容的变量一起使用是不好的,您应该使用printf(阅读这个答案):

XX="$(ls -l)"; printf '%s\n' "$XX"
Run Code Online (Sandbox Code Playgroud)