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

Pet*_*ete 30 csh environment-variables

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

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

if ! $?DEST then
    echo "Need to set DEST"
    exit 1
endif
Run Code Online (Sandbox Code Playgroud)

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

笔记:

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

Jim*_*wis 20

我认为你正在这样做的方式(一个if语句使用$?VAR语法的语句,如果设置了变量,则计算结果为1,否则为0)可能是最csh符合你需要的惯用结构.