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

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08

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

#1

帖子 Think1st » 2012-02-07 23:20

例如:

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

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

请问,如何用B来表示1呢,比如"echo $($B)"之类得,当然这是不对的。
试了好久都不行呢,急啊 :em20
上次由 Think1st 在 2012-02-14 9:27,总共编辑 1 次。
在这里,问题比答案更抢手。
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

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

#2

帖子 枫叶饭团 » 2012-02-07 23:45

``不知道能行不,反引号
fnan
帖子: 919
注册时间: 2009-07-01 22:04

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

#3

帖子 fnan » 2012-02-08 0:49

A=1;B=A;C=B;eval echo \$${!C}
1
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08

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

#4

帖子 Think1st » 2012-02-08 15:05

枫叶饭团 写了:``不知道能行不,反引号
试过了,不行呢。
在这里,问题比答案更抢手。
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08

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

#5

帖子 Think1st » 2012-02-08 16:11

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
在这里,问题比答案更抢手。
fnan
帖子: 919
注册时间: 2009-07-01 22:04

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

#6

帖子 fnan » 2012-02-08 20:27

B=A
bash不如perl精妙,学不到lisp的皮毛,远不够c++强悍,不过可以用。
头像
tosail2010
帖子: 83
注册时间: 2011-03-27 19:01
联系:

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

#7

帖子 tosail2010 » 2012-02-09 16:11

Think1st 写了:例如:

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

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

请问,如何用B来表示1呢,比如"echo $($B)"之类得,当然这是不对的。
试了好久都不行呢,急啊 :em20
echo $(eval echo \$$B)
A year's plan starts with spring.
头像
Think1st
帖子: 45
注册时间: 2012-02-07 23:08

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

#8

帖子 Think1st » 2012-02-11 14:45

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
在这里,问题比答案更抢手。
jtshs256
帖子: 22323
注册时间: 2010-07-19 21:41
系统: OS X

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

#9

帖子 jtshs256 » 2012-02-11 14:49

学习了……
躺平
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

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

#10

帖子 YeLee » 2012-02-11 15:21

jtshs256 写了:学习了……
:em11 :em11 :em11
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
tusooa
帖子: 6548
注册时间: 2008-10-31 22:12
系统: 践兔
联系:

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

#11

帖子 tusooa » 2012-02-12 18:57

Think1st 写了:例如:

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

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

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

代码: 全选

] ls -ld //
回复