在命令输出上打印换行符

在命令输出上打印换行符

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

XX=$(ls -l); echo $XX

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

答案1

你需要双引号来使 shell 不执行场分裂:

XX="$(ls -l)"; echo "$XX"

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

XX="$(ls -l)"; printf '%s\n' "$XX"

相关内容