使用此UNIX脚本,我可以检查是否设置了变量TEST_VAR:
: ${TEST_VAR:?"Not set or empty."}
我是unix的新手,所以有人可以解释一下这个命令是什么。
答案 0 :(得分:1)
来自bash
手册:
${parameter:?word}
如果参数为null或未设置,则扩展word(或消息为 如果word不存在则该效果被写入标准错误 和shell,如果它不是交互式的,则退出。否则,价值 参数被替换。
答案 1 :(得分:1)
它是原始的shell注释符号(在'#'到行尾之前)。很长一段时间,Bourne shell脚本都有一个冒号作为第一个字符。 C Shell将读取一个脚本并使用第一个字符来确定它是用于C Shell('#'哈希)还是Bourne shell(':'冒号)。然后内核加入了行为,并添加了对'#!/ path / to / program'的支持,Bourne shell获得了'#'评论,并且冒号大会走到了路边
看看这个类似的问题:
What's a concise way to check that environment variables are set in a Unix shell script?