csh 成语检查环境变量是不是存在?
Posted
技术标签:
【中文标题】csh 成语检查环境变量是不是存在?【英文标题】: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 更好。我对比我现在使用的更优雅的解决方案特别感兴趣。【问题讨论】:
This newer, similar question 还展示了如何在 if/else/endif 不可能的表达式上下文中进行检查 【参考方案1】:我认为你这样做的方式(if
语句的条件使用 $?VAR
语法,如果设置了变量,则评估为 1,否则为 0)可能是最惯用的 csh
做你想做的事。
【讨论】:
【参考方案2】:尝试以下方法:
[ -z STATE ] && echo "Need to set STATE"
[ ! -z DEST ] && echo "Need to set STATE"
【讨论】:
不清楚你在这里想说什么 - 你有两个相反的逻辑部分打印相同的消息。 无论如何这不是 csh以上是关于csh 成语检查环境变量是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章