分页: 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)"之类得,当然这是不对的。
试了好久都不行呢,急啊

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)。求解答。

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)"之类得,当然这是不对的。
试了好久都不行呢,急啊

echo $(eval echo \$$B)
Re: 求助:bash下字符串赋值问题
发表于 : 2012-02-11 14:45
由 Think1st
fnan 写了:B=A
恩,这里写错了
在另外一个电脑写脚本
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。
算是解决了吧。

Re: 求助:bash下字符串赋值问题
发表于 : 2012-02-11 14:49
由 jtshs256
学习了……
Re: 求助:bash下字符串赋值问题
发表于 : 2012-02-11 15:21
由 YeLee
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)"之类得,当然这是不对的。
试了好久都不行呢,急啊

${!B}