我不想使用 tcsh,但不幸的是在这种情况下别无选择。所以请不要“使用另一个外壳”的答案!
我目前正在尝试检查环境变量是否已设置,并且已设置为有用的东西。所以我想做的是:
if ($?HAPPYVAR && $HAPPYVAR != "") then
... blah...
else if ($?SADVAR && $SADVAR != "") then
... more blah ...
endif
问题是如果 $HAPPYVAR 未设置,它将在表达式的后半部分出错(因为环境变量替换发生得早)。我可以使用嵌套的 ifs,但是我会遇到让我的“else”正常工作的问题(我必须设置另一个 env var 来说明“......blah......”是否发生)。
任何人有任何好的,整洁的解决方案来做到这一点?