使用这个 UNIX 脚本,我可以检查变量 TEST_VAR 是否设置:
: ${TEST_VAR:?"Not set or empty."}
我是 unix 新手,所以有人可以解释一下这个命令是什么。
使用这个 UNIX 脚本,我可以检查变量 TEST_VAR 是否设置:
: ${TEST_VAR:?"Not set or empty."}
我是 unix 新手,所以有人可以解释一下这个命令是什么。
从bash
手册:
${parameter:?word}
如果 parameter 为 null 或未设置,则 word 的扩展(或如果 word 不存在,则将显示消息)写入标准错误,并且 shell,如果它不是交互式的,则退出。否则,参数的值被替换。
它是原始的 shell 注释符号(在 '#' 到行尾之前)。很长一段时间以来,Bourne shell 脚本都以冒号作为第一个字符。C Shell 将读取脚本并使用第一个字符来确定它是用于 C Shell('#' 散列)还是 Bourne shell(':' 冒号)。然后内核开始行动并增加了对“#!/path/to/program”的支持,Bourne shell 得到了“#”注释,冒号约定被搁置了
看看这个类似的问题: