在bash
中,我知道有几种方法可以检查给定变量是否已定义并包含值。但是,我想检查环境中是否存在给定变量,而不是简单的局部变量。例如 ...
VAR1=value1 # local variable
export VAR2=value2 # environment variable
if [[ some_sort_of_test_for_env_var VAR1 ]]
then
echo VAR1 is in the environment
else
echo VAR1 is not in the environment
fi
if [[ some_sort_of_test_for_env_var VAR2 ]]
then
echo VAR2 is in the environment
else
echo VAR2 is not in the environment
fi
怎么some_sort_of_test_for_env_var
定义才能让上面的 bash 代码打印出下面两行呢?
VAR1 is not in the environment
VAR2 is in the environment
我知道我可以定义一个 shell 函数来运行env
并对变量名执行 a grep
,但我想知道是否有更直接的“类似 bash”的方式来确定给定变量是否在环境中,而不仅仅是局部变量。
先感谢您。
你的头衔和正文很不一样。
你的标题要么是不可能的,要么是毫无意义的。bash 中的所有环境变量也是 shell 变量,因此没有环境变量可以“仅”在环境中。
为了你的身体
如果你特别想要
[[
语法您可以生成一个新的 shell 并询问变量是否存在: