反引号在 bash 脚本的行首有什么作用

反引号在 bash 脚本的行首有什么作用

我注意到在 bash 脚本的行首使用反引号时出现奇怪的行为。

  • 示例1:

    echo "Test"
    `ls`
    

    输出:

    Test
    

    并被ls忽略。

  • 示例2:

    `test ':";`|)%$kasdj`
    

    这应该返回一个错误,但它没有,它的作用就像一条注释。

答案1

`ls`

在第一个脚本片段中,将命令替换为 的输出ls并执行它。如果它是一个空目录,则不会替换任何内容,也不会发生任何情况。

在第二个示例中,反引号的数量是奇数而不是偶数。所以存在语法错误。

相关内容