请问一下,PYTHON=${PYTHON:-"python"}是什么意思呀?
来源:7-1 安全的文件传输,轻松同步

慕慕0439991
2022-09-28
Oscar老师:
您好!请问一下,我在Shell脚本中看到这样一个命令
PYTHON=${PYTHON:-"python"}
这句是什么意思呀?
期待您的回复!
1回答
-
Oscar
2022-10-11
首先,这组符号
:-
是 Bash Shell 中的一个语法,属于一个 Parameter expansion(参数扩展)。
可以看这个回答:https://stackoverflow.com/questions/27445455/what-does-the-colon-dash-mean-in-bash
Bash Shell 中的参数扩展的文档,可以看 https://wiki.bash-hackers.org/syntax/pe:- 这组符号是属于 https://wiki.bash-hackers.org/syntax/pe#use_a_default_value
Use a default value 表示“使用一个默认值”。
例如${PARAMETER:-WORD}
表示的意思是:
“If the parameterPARAMETER
is unset (never was defined) or null (empty), this one expands toWORD
, otherwise it expands to the value ofPARAMETER
, as if it just was${PARAMETER}
.”翻成中文就是:
【如果参数 PARAMETER 没有设置(从没有被定义)或者是 null(空),那么它的值会被赋值为 :- 符号后面的 WORD 这个值。那如果 PARAMETER 有被设置,那整个表达式的取值就是 PARAMETER 的值,就是等于 ${PARAMETER} 】。知道了 :- 这组符号的作用,那
PYTHON=${PYTHON:-"python"}
就简单了(python 两边的双引号可以省略)。表示如果 PYTHON 这个参数没有被设置或为空的话,就用 python 这个默认值,否则就用设置的值来替代。
可以看这个回复:https://stackoverflow.com/questions/35274498/meaning-of-python-python-in-shell-script-and-how-to-change例如:
00
相似问题