我正在尝试理解Bash脚本。我偶然发现了这个:
DIR=${1:-"/tmp"}
这是什么意思?
答案 0 :(得分:8)
:-
实际上是一个运算符,它表示如果未设置$1
(脚本的第一个参数)或null
,则使用/tmp
作为{的值{1}}如果已设置,则将其值分配给$DIR
。
$DIR
是
的缩写DIR=${1:-"/tmp"}
它可以与任何变量一起使用,而不仅仅是位置参数:
if [ -z $1 ]; then
DIR='/tmp'
else
DIR="$1"
fi
答案 1 :(得分:8)
该语法为parameter expansion:
${parameter:-word}
如果
parameter
未设置或为null,则word
的扩展将被替换。否则,parameter
的值将被替换。
因此,如果$1
未设置或为空,则评估为"/tmp"
,否则评估为$1
。