用csh成语检查环境变量是否存在?

时间:2010-02-25 18:01:32

标签: environment-variables csh

我有一些csh脚本需要在开始做之前检查某些环境变量是否已设置,所以我做了这样的事情:

if ! $?STATE then
    echo "Need to set STATE"
    exit 1
endif

if ! $?DEST then
    echo "Need to set DEST"
    exit 1
endif

这是很多打字。是否有更优雅的习惯用于检查环境变量是否已设置?

注意:

  • This question非常相似,但具体询问bash中的解决方案。
  • 我不是在寻找人们建议我远离csh因为它被诅咒,吓人或者bash更好。我特别感兴趣的是比我现在使用的更优雅的解决方案。

2 个答案:

答案 0 :(得分:20)

我认为你正在这样做的方式(if语句使用$?VAR语法,如果设置了变量则计算为1,否则为0,可能是最大的惯用csh构造,可以做你想要的。

答案 1 :(得分:-5)

尝试以下方法:

[ -z STATE ] && echo "Need to set STATE"

[ ! -z DEST  ] && echo "Need to set STATE"