Bash参数间接寻址

示例

Bash间接允许获取名称包含在另一个变量中的变量的值。变量示例:

$ red="the color red"

$ green="the color green"

$ color=red

$ echo "${!color}"

the color red

$ color=green

$ echo "${!color}"

the color green

一些其他示例演示间接扩展用法:

 $ foo=10

 $ x=foo

 $ echo ${x}      #Classic variable print  

 foo  

 

 $ foo=10

 $ x=foo

 $ echo ${!x}     #Indirect expansion

 10

再举一个例子:

$ argtester () { for (( i=1; i<="$#"; i++ )); do echo "${i}";done; }; argtester -ab -cd -ef 

1   #i expanded to 1 

2   #i expanded to 2

3   #i expanded to 3

$ argtester () { for (( i=1; i<="$#"; i++ )); do echo "${!i}";done; }; argtester -ab -cd -ef 

-ab     # i=1 --> expanded to $1 ---> expanded to first argument sent to function

-cd     # i=2 --> expanded to $2 ---> expanded to second argument sent to function

-ef     # i=3 --> expanded to $3 ---> expanded to third argument sent to function

           

以上是 Bash参数间接寻址 的全部内容, 来源链接: utcz.com/z/330650.html

回到顶部