TMPDIR中有什么' - '吗?

pyt*_*hor 2 linux env environment-variables

我最近看到一个示例,其中调用了一个命令,并将以下选项传递给env:

TMPDIR="${TMPDIR:-/tmp}"
Run Code Online (Sandbox Code Playgroud)

什么是-$TMPDIR做什么?这是针对未指定版本的linux.

Bar*_*mar 5

文档:

$ { parameter: - word }
如果参数未设置或为null,则替换word的扩展.否则,参数的值将被替换.

所以这设置TMPDIR/tmp如果它是空的或没有设置.如果省略:(例如${TMPDIR-/tmp},它只测试变量是否未设置,如下所示:

省略冒号只会导致对未设置的参数进行测试.换句话说,如果包含冒号,运算符将测试参数的存在性及其值不为空; 如果省略冒号,则运算符仅测试是否存在.