我不想使用tcsh,但不幸的是在这种情况下没有选择。所以请不要回答“使用其他 shell”!
我目前正在尝试检查一个环境变量是否已经设置,并且它被设置为有用的内容。所以我想做的是:
if ($?HAPPYVAR && $HAPPYVAR != "") then
... blah...
else if ($?SADVAR && $SADVAR != "") then
... more blah ...
endif
问题在于如果$HAPPYVAR未设置,它将在表达式的后半部分出错(因为环境变量替换会提前发生)。我可以使用嵌套的if语句,但那样我会遇到正确使用“else”的问题(我必须设置另一个环境变量来说明是否发生了"...blah...")。
有没有人有一个漂亮、整洁的解决方案?