我想知道这是否可行:
scriptname:测试
#! /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
命令:测试b
产量
$2 b
有没有办法让$arg的值等于$2的值是“b”,而不只是显示字符串“$2”,而不是直接将$2的值分配给$arg,arg = $2?
尝试这样做arg = echo ${$i}但是我得到了这个错误:测试:${$i}:错误的替换
提前致谢
解决方法
是;你可以使用间接扩展,如下所示:
i=2 arg="${!i}" # equivalent to: arg="$2"
见第§3.5.3 “Shell Parameter Expansion” in the Bash Reference Manual段第4段.