BASH – 位置参数

我想知道这是否可行:

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段.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...