3

我想知道这是否可能:

脚本名称:testing

#! /bin/bash
i=2

arg=`echo "$"$i`

echo $arg      #value should be the value of $2 and not just '$2' string

echo $2

exit 0

命令:testing a b

输出

$2

b

除了直接将 $2 的值分配给 $arg,arg=$2 之外,有没有办法使 $arg 的值等于 $2 的值,即“b”,而不是只显示字符串“$2”?

尝试执行此 arg=echo ${$i}但我收到此错误:测试:${$i}: 错误替换

提前致谢

4

1 回答 1

8

是的; 您可以使用间接扩展,如下所示:

i=2
arg="${!i}"          # equivalent to:    arg="$2"

请参阅Bash 参考手册中第3.5.3 节“Shell 参数扩展”的第四段

于 2013-02-22T06:24:51.407 回答