【问题标题】:Bash script what is := for?Bash 脚本 := 的用途是什么?
【发布时间】:2009-06-30 15:19:13
【问题描述】:

有谁知道 := 的用途是什么?

我试过谷歌搜索,但似乎谷歌过滤了所有符号?

我知道下面的内容类似于检查变量 HOME 是否为目录,然后某些内容不等于空字符串。

  if [ "${HOME:=}" != "" ] && [ -d ${HOME} ]

【问题讨论】:

    标签: bash scripting colon-equals


    【解决方案1】:

    来自Bash Reference Manual

    ${parameter:=word}

    如果参数未设置或为空,则将单词的扩展分配给 范围。参数的值为 然后替换。位置 参数和特殊参数可以 不会以这种方式分配给。

    基本上,当且仅当parameter 未设置或为空时,它会将word 的值分配给parameter

    【讨论】:

    • 我见过 := 很多地方。通常我读它是“由”定义的。在 C++、C#、Java(+ 一百个其他地方)中:= 等于 =。如果这是真的,通常 = 等于 ==。哇——这对我来说是一个微妙的观点。对不起,我不善于解释自己:)
    • @Meeh:据我所知,这是 bash 使用“:=”的唯一情况。对于赋值,使用“=”,对于相等比较,可以使用“=”或“==”。 Bash 也接受像“+=”这样的赋值运算符。我不确定您说的 C++ 等使用哪个运算符,但它是“=”。像 Pascal 和 Ada 这样的语言使用“:=”,因此可能被认为比较少见。
    【解决方案2】:

    来自 Bash 手册页:

    分配默认值。如果 参数未设置或为空,则 词的扩展分配给 范围。参数值 然后被替换。位置 参数和特殊参数可以 不会以这种方式分配到。

    手册页是一个很棒的东西。 man bash 会告诉你几乎所有关于 Bash 的信息。

    【讨论】:

      猜你喜欢
      • 2016-10-10
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2018-11-27
      • 2011-09-17
      • 2011-01-18
      相关资源
      最近更新 更多