0

使用这个 UNIX 脚本,我可以检查变量 TEST_VAR 是否设置:

: ${TEST_VAR:?"Not set or empty."}

我是 unix 新手,所以有人可以解释一下这个命令是什么。

4

2 回答 2

1

bash手册:

${parameter:?word}

如果 parameter 为 null 或未设置,则 word 的扩展(或如果 word 不存在,则将显示消息)写入标准错误,并且 shell,如果它不是交互式的,则退出。否则,参数的值被替换。

于 2013-03-28T16:41:28.427 回答
1

它是原始的 shell 注释符号(在 '#' 到行尾之前)。很长一段时间以来,Bourne shell 脚本都以冒号作为第一个字符。C Shell 将读取脚本并使用第一个字符来确定它是用于 C Shell('#' 散列)还是 Bourne shell(':' 冒号)。然后内核开始行动并增加了对“#!/path/to/program”的支持,Bourne shell 得到了“#”注释,冒号约定被搁置了

看看这个类似的问题:

检查环境变量是否在 Unix shell 脚本中设置的简洁方法是什么?

于 2013-03-28T16:43:22.607 回答