我找不到任何可以解释下面语法的文档.它在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 次 |
| 最近记录: |