在UNIX中将字符串转换为变量

时间:2012-04-24 16:20:16

标签: shell unix

我有以下代码

let a=1
let b=a

echo $b

当我回显b时,我希望它引用它的值(即'a'),并显示a的值(即'1')

这可以实现吗?

3 个答案:

答案 0 :(得分:2)

首先,我认为你真的不想这样做。但不是说服你,而是如何做到这一点:

$ let a=1
$ b=a
$ echo $b
a
$ eval "echo \$$b"
1

请注意,您不能对第二个作业使用“let”,因为您希望稍后以字符串形式访问右侧。

答案 1 :(得分:1)

我想你想要let b=$a

答案 2 :(得分:0)

如果你的shell是bash,那么你写的实际上将b设置为“1”(而不是“a”),因为$在算术表达式中是可选的(你强制使用它let)。

不使用let,这是您正在寻找的语法(假设是bash):a=1; b=a; echo $b ${!b}输出a 1