: ${var:=value} 为什么不加冒号 ${var:=value}就会被当做命令执行?

: ${var:=value} 为什么不加冒号 ${var:=value}就会被当做命令执行? 怎么理解?这里面有啥原则么 ?

阅读 4.4k
1 个回答

shell 语法,第一个非保留字就是命令。: 就是一个内建的命令,跟汇编的 nop、Python 的 pass 一样,是个什么都不干的命令。shell 把字符串变量替换做完之后调用它,它什么都不管直接返回了。

>>> which :
:: shell built-in command
>>> run-help :
: [ arg ... ]
       This command does nothing, although normal  argument  expansions
       is performed which may have effects on shell parameters.  A zero
       exit status is returned.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进