如何检查CSH中是否设置了环境变量?

问题描述 投票:0回答:1

我正在编写一个 CSH 脚本,我需要检查终端中是否设置了环境变量 XYZ 或 ABC。

如果设置了这些变量,那么我需要检查它们是否设置为 FALSE”。 我正在尝试如下:

if ( !($?ABC) ) then

   echo "variable is not set"

else if ( $ABC == "FALSE") then

   echo "variable set to false"                

endif

但 CSH 首先替换变量。所以我收到以下错误:

ABC:未定义的变量

你能帮我解决这个问题吗?

linux csh
1个回答
0
投票

如果您在脚本内定义变量应该没有问题。

set ABC = FALSE
if ( ! $?ABC  ) then

   echo "variable is not set"

else if ( $ABC == "FALSE") then

   echo "variable set to false"

endif

echo "ABC is still: $ABC"

输出:

variable set to false
ABC is still: FALSE

此外,如果您使用 setenv 在脚本外部定义变量,它将适用于您的脚本

setenv ABC FALSE
./your_script.sh

输出:

variable set to false
ABC is still: FALSE

更好的方法是使用命令行参数。将变量传递给脚本是比 setenv 更好的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.