微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bash行继续和评论

有没有解释为什么评论在第三个例子中被回应?

$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.]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐