:${ROOT\u DIR:=";}在bash脚本中做什么?

:${ROOT\u DIR:=";}在bash脚本中做什么?,bash,shell,unix,Bash,Shell,Unix,我正在看bash脚本中的以下行: : ${ROOT_DIR:="."} 我相信我理解第二部分是一个扩展,它将ROOT_DIR变量设置为当前工作目录。但是,我不确定ROOT_DIR是一个特殊的环境变量还是一个普通的环境变量 另外,前面的“:”冒号做什么?ROOT\u DIR并不特别,它只是这个shell脚本碰巧使用的一个变量。 :什么都不做。特别是,它在这里用作虚拟命令,允许:=的副作用生效,将默认值指定给根目录。您可以从bash手册页获得更多详细信息: : [arguments]

我正在看bash脚本中的以下行:

 : ${ROOT_DIR:="."}
我相信我理解第二部分是一个扩展,它将ROOT_DIR变量设置为当前工作目录。但是,我不确定ROOT_DIR是一个特殊的环境变量还是一个普通的环境变量


另外,前面的“:”冒号做什么?

ROOT\u DIR
并不特别,它只是这个shell脚本碰巧使用的一个变量。
什么都不做。特别是,它在这里用作虚拟命令,允许
:=
的副作用生效,将默认值指定给
根目录。您可以从bash手册页获得更多详细信息:

   : [arguments]
          No effect; the command does nothing beyond expanding arguments and 
          performing any specified redirections.  A zero exit code is returned.
“扩展参数”是这里的重要部分,它允许进行默认赋值

   ${parameter:=word}
          Assign Default Values.  If parameter is unset or null, the expansion of 
          word is assigned to parameter.  The value of parameter is then  substituted.
          Positional parameters and special parameters may not be assigned to in this way.