今天我看到一个bash脚本使用冒号来表示评论。使用冒号和哈希标记之间的区别是什么?
: This is a comment.
# This is also a comment.
首先,我知道你不能使用冒号作为结尾评论:
cd somedir : This won't work as a comment.
但上述例子有效的事实让我对如何评估:
感到困惑。
答案 0 :(得分:9)
:
只是true
的别名,而true
会忽略其参数:
# Does nothing:
true foo bar etc hello
# Does the same:
: foo bar etc hello
这不是评论,不应该用作评论,因为它的所有参数仍然被解析和评估:
: This "comment" actually executes this command: $(touch foo)
ls -l foo
或者像这里一样,StackOverflow的语法突出显示中间的命令实际上只是文本,即使人类没有:
: The command below won't run:
echo "Hello World"
: because the surrounding "comments" each contain a ' characters
答案 1 :(得分:1)
':'是一个shell内置命令,它只会扩展参数并返回true
。来自bash man page:
: [arguments]
No effect; the command does nothing beyond expanding arguments
and performing any specified redirections. A zero exit code is
returned.
#
是评论。但它只适用于单行。