什么"?" bash中的$ {foo:?}是什么意思?

时间:2016-04-24 15:00:07

标签: bash

我有一些bash脚本,我正在经历,我发现代码使用以下构造用于许多变量:

ID1="{ID2:?}"

. ${PATH1:?}/file1

有人可以帮助我理解?在这方面的作用吗?

1 个答案:

答案 0 :(得分:5)

在此上下文中,如果参数未设置或为null,则会引发错误。通常,您会在?后面看到自定义错误消息,但如果没有,则会打印一条通用错误消息。

$ unset id2
$ id1=${id2:?}
bash: id2: parameter null or not set
$ id1=${id2:?nope}
bash: id2: nope
$ id2=9
$ id1=${id2:?}
$ echo $id1
9