bash脚本中$ {VAR:= value}的结果是什么

why*_*ite 5 bash shell

我正在查看:=在之间使用的几个bash脚本${ }。例如,模式如下所示:

export VAR=${VAR:=value}
Run Code Online (Sandbox Code Playgroud)

这是在做什么 如果VAR不存在,是否将分配给VAR

Fat*_*ror 5

从手册页:

\n\n
\n
   ${parameter:=word}\n          Assign Default Values.  If  parameter  is  unset  or  null,  the\n          expansion of word is assigned to parameter.  The value of param\xe2\x80\x90\n          eter is then substituted.   Positional  parameters  and  special\n          parameters may not be assigned to in this way.\n
Run Code Online (Sandbox Code Playgroud)\n
\n\n

换句话说,它基本上允许您指定变量的默认值。如果变量未设置/为空,则它将被设置为该值,并且该值也将用作扩展。

\n


Car*_*iel 5

根据文档

$ {parameter:= word}

如果参数未设置或为空,则将单词扩展指定给参数。然后替换参数的值。不能以此方式分配位置参数和特殊参数。

因此,它使用其值导出VAR值,或者如果未设置/为空,则使用literal导出value