如何用变量获取参数?

时间:2012-05-06 19:47:05

标签: linux bash unix

当我有一些值的变量时,我有获取参数值的问题。我的意思是:

示例:

./script 12 13 14 15 16

value=5
echo $value #now I see 5
$"$value" #now I want to get 16 but I don't know how to do it?

4 个答案:

答案 0 :(得分:4)

使用indirection

echo "${!value}"

值16不需要引号,但如果变量包含特殊字符,则应使用引号。

答案 1 :(得分:1)

试试这个:

value=5              #
echo "$value"        # 5 
echo ${@:$value:1}   # give you 1 arg starting from $value in the arg list     

答案 2 :(得分:0)

你需要dereference那个变量

value=5
echo "$value"      # 5
echo "${!value}"   # will give you $5 or in your example 16

答案 3 :(得分:0)

bashisms本质上是不便携的。如果依靠$ {!...}来计算表达式,那么您的脚本只能在bash中运行。这可能不是问题,但如果脚本的作者幸福地没有意识到缺乏可移植性,则这是一个问题。如果不依赖于基础,这种事情是微不足道的。如果要评估字符串,请使用eval:

eval echo \$$value