【发布时间】:2019-07-01 05:09:10
【问题描述】:
我对 tcsh shell 脚本问题感到困惑。 (为了工作,shell别无选择,我坚持)
下面的 enableThingN 项是其他东西在运行这个 csh 脚本之前使用 tcsh shell 设置的 shell 环境变量。这些根本不是在同一个脚本中设置的,只是在这里评估。
错误信息是:
enableThing1: Undefined variable.
代码是:
if ( ( $?enableThing1 && ($enableThing1 == 1) ) || \
( $?enableThing2 && ($enableThing2 == 1) ) || \
( $?enableThing3 && ($enableThing3 == 1) ) || \
( $?enableThing4 && ($enableThing4 == 1) ) ) then
set someScriptVar = FALSE
else
set someScriptVar = TRUE
endif
所以,据我了解,大 if 条件的第一部分是使用 $?enableThing1 魔法检查是否完全定义了 enableThing1。如果已定义,则继续检查该值为 1 或其他值。如果未定义,则跳过检查同一 shell 变量的 ==1 部分,继续查看 enableThing2 是否已定义,依此类推。
看起来我正在检查是否存在,如果根本没有定义值,我打算避免检查值,我哪里出错了?
我已经在 stackoverflow 和整个 Google 上进行了搜索,但结果很少,并且没有让我得到答案,例如:
https://stackoverflow.com/questions/16975968/what-does-var-mean-in-csh
【问题讨论】:
标签: variables if-statement undefined csh tcsh