分页: 1 / 1

求助:bash下字符串赋值问题(已解)

发表于 : 2012-02-07 23:20
Think1st
例如:

#!/bin/sh
A=1
B=A
C=B

echo 1 #结果1
echo $A #结果1

请问,如何用B来表示1呢,比如"echo $($B)"之类得,当然这是不对的。
试了好久都不行呢,急啊 :em20

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-07 23:45
枫叶饭团
``不知道能行不,反引号

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-08 0:49
fnan
A=1;B=A;C=B;eval echo \$${!C}
1

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-08 15:05
Think1st
枫叶饭团 写了:``不知道能行不,反引号
试过了,不行呢。

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-08 16:11
Think1st
fnan 写了:A=1;B=A;C=B;eval echo \$${!C}
1
在终端下试了,可以。
eval echo "\$$B" #结果1
echo ${!B} #结果也是1,bash version2 添加得功能

但是在文件中比如
#!/bin/bash
A=1
B=1
eval echo "\$$B"

运行显示空白。
不知为何呢。。我bash得版本是4.1.5(1)。求解答。 :em20

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-08 20:27
fnan
B=A

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-09 16:11
tosail2010
Think1st 写了:例如:

#!/bin/sh
A=1
B=A
C=B

echo 1 #结果1
echo $A #结果1

请问,如何用B来表示1呢,比如"echo $($B)"之类得,当然这是不对的。
试了好久都不行呢,急啊 :em20
echo $(eval echo \$$B)

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-11 14:45
Think1st
fnan 写了:B=A
恩,这里写错了 :em03
在另外一个电脑写脚本

1 #! /bin/sh
2
3 A=1
4 B=A
5
6 echo 1
7 echo $A
8 eval echo "\$$B"
9 echo $(eval echo \$$B)

运行,都可以显示1。
算是解决了吧。 :em02

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-11 14:49
jtshs256
学习了……

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-11 15:21
YeLee
jtshs256 写了:学习了……
:em11 :em11 :em11

Re: 求助:bash下字符串赋值问题

发表于 : 2012-02-12 18:57
tusooa
Think1st 写了:例如:

#!/bin/sh
A=1
B=A
C=B

echo 1 #结果1
echo $A #结果1

请问,如何用B来表示1呢,比如"echo $($B)"之类得,当然这是不对的。
试了好久都不行呢,急啊 :em20
${!B}