我注意到在 bash 脚本的行首使用反引号时出现奇怪的行为。
示例1:
echo "Test" `ls`
输出:
Test
并被
ls
忽略。示例2:
`test ':";`|)%$kasdj`
这应该返回一个错误,但它没有,它的作用就像一条注释。
答案1
这
`ls`
在第一个脚本片段中,将命令替换为 的输出ls
并执行它。如果它是一个空目录,则不会替换任何内容,也不会发生任何情况。
在第二个示例中,反引号的数量是奇数而不是偶数。所以存在语法错误。
我注意到在 bash 脚本的行首使用反引号时出现奇怪的行为。
示例1:
echo "Test"
`ls`
输出:
Test
并被ls
忽略。
示例2:
`test ':";`|)%$kasdj`
这应该返回一个错误,但它没有,它的作用就像一条注释。
这
`ls`
在第一个脚本片段中,将命令替换为 的输出ls
并执行它。如果它是一个空目录,则不会替换任何内容,也不会发生任何情况。
在第二个示例中,反引号的数量是奇数而不是偶数。所以存在语法错误。