我找不到任何可以解释下面语法的文档.它在bash脚本中做了什么?这是考试吗?
: ${foo:=bar}; export foo
Run Code Online (Sandbox Code Playgroud)
该:
命令是null实用程序:
该实用程序只应扩展命令参数.它在需要命令时使用,如if命令的then条件,但命令不执行任何操作.
除了扩展参数和执行重定向之外什么都不做.返回状态为零.
该${foo:=bar}
语法是一个特殊的参数扩展:
Run Code Online (Sandbox Code Playgroud)${parameter:=[word]}
分配默认值.如果参数未设置或为null,则应将字的扩展(如果省略字,则为空字符串)分配给参数.在所有情况下,参数的最终值应替换.只能以这种方式分配变量,而不是位置参数或特殊参数.
Bash参考手册条目:
Run Code Online (Sandbox Code Playgroud)${parameter:=word}
如果参数未设置或为null,则将字的扩展分配给参数.然后替换参数的值.不能以这种方式分配位置参数和特殊参数.
所以你问题中的命令行:
: ${foo:=bar}; export foo
Run Code Online (Sandbox Code Playgroud)
有两个命令:
: ${foo:=bar}
export foo
第一个扩展变量foo
,如果它为空或未设置,则赋值bar
.
然后,第二个导出foo
子shell和其他进程的变量.
归档时间: |
|
查看次数: |
1380 次 |
最近记录: |