【发布时间】:2015-10-19 05:05:12
【问题描述】:
问题描述
在我的 Unix ksh 系统中,我有一个环境变量 A 在做
echo ${A}
我得到了想要的值,即hello。
我可以在
中检查这个值env | grep ${A}
输出:A=hello
或在
printenv | grep ${A}
输出:A=hello
现在我有一个文件file,其中包含环境变量列表,我必须获取相应的值。
现在我只尝试了文件的第一个值。
env | grep $(cat file | awk 'NR==1{print $1}')-- 什么都不显示-
b=$(cat file | awk 'NR==1{print $1}')env | grep echo $b b=cat TEMP_ES_HOST_MAP | awk -F"|" 'NR==1{print $2 }'echo $bc=eval $bc=echo $b
似乎没有任何效果。
谢谢
【问题讨论】:
-
一个更短/更简单的选择可能是使用 eval:
varname=A; eval "echo \$$varname" -
@Wolph 不过不一样。这会找到未导出的变量。
-
@EtanReisner:是的,它不一样。不过对于这种情况可能就足够了:)
-
您的
awk命令表明您混淆了NR(记录/行号)和NF(字段号)。