用一个字符串代替shell中的变量

时间:2011-08-13 12:59:49

标签: linux bash shell variables scripting

我将一个字符串作为参数传递给shell脚本。并且shell脚本应该告诉我传递的参数是否是变量

类似这样的事情

if [ ! -z ${$1} ] ; then  
echo yes! $1 is a variable and its value is ${$1}  
fi

但这给了我糟糕的替代错误..

我当然知道我错过了什么......帮助我!

例如用法:

$ myscript.sh HOME  
yes! HOME is a variable and its value is /home/raj

2 个答案:

答案 0 :(得分:4)

这个的语法是:

${!VAR}

示例:

$ function hello() { echo ${!1}; }
$ hello HOME
/home/me

答案 1 :(得分:1)

在这里找到它: http://www.linuxquestions.org/questions/programming-9/bash-how-to-get-variable-name-from-variable-274718/

你应该做的一切:

if [ ! -z ${!1} ]; then
    echo yes $1 is a variable and its value is ${!1}
fi