我最近看到了一个示例,其中调用命令时将以下选项传递给env
:
TMPDIR="${TMPDIR:-/tmp}"
$TMPDIR
中的-
做什么?
来自文档:
参数$ {: - 词}
如果参数未设置或为空,则替换字的展开。否则,将替换参数的值。
因此,如果TMPDIR
为空或未设置,则将其设置为/tmp
。如果省略:
(例如${TMPDIR-/tmp}
),它只测试变量是否未设置,如指定的:
省略冒号将导致只对未设置的参数进行测试。换句话说,如果包含冒号,操作符将测试两个参数是否存在,并且其值是否为空;如果省略冒号,则操作符只测试是否存在。
将$TMPDIR
设置为自身,否则设置为/tmp