我在bash(:)搜索noop,但没有找到任何好的信息。此运算符的确切用途或用例是什么?
我试过以下,它的工作像这样为我:
[mandy@root]$ a=11 [mandy@root]$ b=20 [mandy@root]$ c=30 [mandy@root]$ echo $a; : echo $b ; echo $c 10 30
请让我知道,任何使用这个运算符的实时或任何地方,它是强制使用它。
它有更多的历史原因。冒号内建:完全等同于真。传统的是,当返回值很重要时使用true,例如在无限循环中:
while true; do echo 'Going on forever' done
它是传统的使用:当shell语法需要一个命令,但你没有什么可做。
while keep_waiting; do : # busy-wait done
内置命令可以追溯到Thompson shell,它在Unix v6是present:是一个标签指示器的汤姆森壳的goto语句。标签可以是任何文本,因此:加倍作为注释指示符(如果没有goto注释,则:comment实际上是注释)。 Bourne shell没有goto但保持:。
一个常用的惯用法,使用:是: ${var=VALUE}
,如果它被取消设置var设置为VALUE,如果var已经设置,什么都不做。这个结构只以变量替换的形式存在,并且这个变量替换需要是命令的一部分:a no-op命令很好地服务。