当我有一些值的变量时,我在获取参数值时遇到问题。我的意思是:
例子:
./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?
也试试这个:
value=5 #
echo "$value" # 5
echo ${@:$value:1} # give you 1 arg starting from $value in the arg list
您需要取消引用该变量
value=5
echo "$value" # 5
echo "${!value}" # will give you $5 or in your example 16
bashism 本质上是不可移植的。如果您依赖 ${!...} 来评估表达式,您的脚本将只能在 bash 中运行。这可能不是问题,但如果脚本的作者幸福地没有意识到缺乏可移植性,那就是一个问题。如果不依赖 bashism,这种事情是微不足道的。如果要评估字符串,请使用 eval:
eval echo \$$value