l*****u 发帖数: 12114 | 1 export VAR1=1
export VAR2=2
export VAR3=3
现在要写个script, echo_var 2,要输出2.
就是说要输出VAR$1 , 用个shell function(), 怎么做? |
x**m 发帖数: 941 | 2 最直接可以用case。
要fancy的话,我试了试varible substitution, 不过好像都不work。需要高人指点。
#!/bin/bash
VAR1=11
VAR2=22
VAR3=33
var=$1
v=VAR$var
echo ${$v}
echo ${VAR$var}
echo ${VAR{var}}
echo ${VAR{`echo $var`}} |
F*V 发帖数: 3978 | 3 google reference
【在 x**m 的大作中提到】 : 最直接可以用case。 : 要fancy的话,我试了试varible substitution, 不过好像都不work。需要高人指点。 : #!/bin/bash : VAR1=11 : VAR2=22 : VAR3=33 : var=$1 : v=VAR$var : echo ${$v} : echo ${VAR$var}
|
x**m 发帖数: 941 | 4 多谢,似乎可以了。不过有更简单点的办法没有?
#!/bin/bash
VAR1=11
VAR2=22
VAR3=33
var=$1
echo $(eval "echo \$$(echo VAR${var})") |
F*V 发帖数: 3978 | 5 Isn't \$$ the shortest method?
【在 x**m 的大作中提到】 : 多谢,似乎可以了。不过有更简单点的办法没有? : #!/bin/bash : VAR1=11 : VAR2=22 : VAR3=33 : var=$1 : echo $(eval "echo \$$(echo VAR${var})")
|
v*****r 发帖数: 1119 | 6 简单,用eval
#!/bin/bash
VAR1=11
VAR2=22
VAR3=33
eval echo \$VAR$1
【在 l*****u 的大作中提到】 : export VAR1=1 : export VAR2=2 : export VAR3=3 : 现在要写个script, echo_var 2,要输出2. : 就是说要输出VAR$1 , 用个shell function(), 怎么做?
|
x**m 发帖数: 941 | |
F*V 发帖数: 3978 | 8 since bash 2
${!var}
is more intuitive
【在 x**m 的大作中提到】 : 不错,有点意思。多谢。
|
l*****u 发帖数: 12114 | 9 牛。谢了。
【在 v*****r 的大作中提到】 : 简单,用eval : #!/bin/bash : VAR1=11 : VAR2=22 : VAR3=33 : eval echo \$VAR$1
|