【问题标题】:csh idioms to check for environment variable existence?csh 成语检查环境变量是否存在?
【发布时间】:2011-01-21 03:19:47
【问题描述】:

我有一些 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 更好。我对比我现在使用的更优雅的解决方案特别感兴趣。

【问题讨论】:

标签: environment-variables csh


【解决方案1】:

我认为你这样做的方式(if 语句的条件使用 $?VAR 语法,如果设置了变量,则评估为 1,否则为 0)可能是最惯用的 csh做你想做的事。

【讨论】:

    【解决方案2】:

    尝试以下方法:

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

    【讨论】:

    • 不清楚你在这里想说什么 - 你有两个相反的逻辑部分打印相同的消息。
    • 无论如何这不是 csh
    猜你喜欢
    • 1970-01-01
    • 2012-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多