UNIX,获取环境变量

时间:2010-03-19 13:32:52

标签: unix shell environment echo

由于一个荒谬的问题,我有一个荒谬的问题。

通常,如果我想在UNIX shell中获取环境变量的内容,我可以

echo ${VAR}

由于我的荒谬情况,让我们假设这是不可能的。

如何在没有查看命令本身(而不是输出)的人的情况下将环境变量的内容获取到stdout,请参阅环境变量的值。

我可以想象解决方案类似于echo env(NAME_OF_VAR),虽然我似乎无法找到它。解决方案必须在sh。

中工作

PS我不能为此编写脚本,它必须是内置的unix命令(我知道,荒谬的问题)

谢谢(抱歉荒谬)

7 个答案:

答案 0 :(得分:56)

你可以这样做:

printenv VARIABLE_NAME

答案 1 :(得分:6)

在终端中键入以下命令,它将显示所有环境变量列表

<强> printenv

现在打印想要的变量:

echo $ VARIABLENAME

答案 2 :(得分:4)

你的意思是这样的:

ENV() {
    printf 'echo $%s\n' $1 | sh
}

这适用于普通的旧Bourne shell。

答案 3 :(得分:3)

使用${!VAR_NAME}应该是您正在寻找的

> FOO=BAR123
> VAR_NAME=FOO
> echo ${VAR_NAME}
FOO
> echo ${!VAR_NAME}
BAR123

答案 4 :(得分:2)

这个怎么样:

myVariable=$(env  | grep VARIABLE_NAME | grep -oe '[^=]*$');

答案 5 :(得分:1)

解决方案实际上取决于您不能使用简单$VAR的限制。也许你可以调用一个没有限制的shell,并让这个子shell评估变量:

bash -c 'echo $VAR'

答案 6 :(得分:0)

( set -o posix ; set ) | grep $var

搜索已使用的所有与unix兼容的格式变量