有没有解释为什么评论在第三个例子中被回应?
$echo a b \ > c # test a b c $echo a b c \ > # test a b c $echo a b c \ > \ # test a b c # test $echo a b c \ > \ # test a b c
解决方法
在bash中,#只有在单词的开头处才会开始注释.根据此规则,以下两个命令行都没有注释:
$echo a b c# test a b c# test $echo a b c \ # test a b c # test
在上面的第一种情况中,#是c#这个词的一部分而#不在开头.
在上面的第二种情况(你的情况)中,#是单词#的一部分(其中第一个字符是空白而#是第二个字符). #不在开头,因此不会发表评论.
通常,shell将空白视为单词分隔符.通过逃避空白,它失去了特殊的解释,变成了另一个角色.
是否使用延续线不会改变这一点.
文档
a word beginning with # causes that word and all remaining characters on that line to be ignored. [Emphasis added.]