bash - 命令替换省略了空格

时间:2017-03-18 10:59:27

标签: string bash command-substitution

我有一个命令,它返回一个带有前导空格的字符串,当我使用命令替换时它会被吃掉

> echo "  test"
  test

> echo $(echo "  test")
test

为什么会发生这种情况,我该怎么办呢?

1 个答案:

答案 0 :(得分:1)

你可以双引号命令替换来保存它,

echo "$(echo "  test")"
  test

从页面上的man bash

开始
  

命令替换

     

Bash执行扩展,执行命令并用命令的标准输出替换命令替换,以及任何尾随换行符   删除。嵌入的换行不会被删除,但在分词时可能会被删除。

     

如果替换出现在双引号 中,则不会对结果执行分词和路径名扩展。