如何在Bash中更改二级变量的值?

时间:2012-01-04 20:25:06

标签: bash variables pointers

让我们考虑bash中的2个变量如下:

X = 8  
Y = X

如果我想使用变量X打印Y的值,我可以执行echo ${!Y}并打印值8

现在问题是,如何使用变量X更改Y的值?

2 个答案:

答案 0 :(得分:7)

使用eval

$ X=8
$ Y=X
$ echo ${!Y}
8
$ eval $Y=3
$ echo $X
3

答案 1 :(得分:2)

这可能对您有用:

X=8; Y=X; echo ${!Y}
8
echo $(($Y=3))
3
echo $X
3
(($Y=7)); echo $X
7

以下是其他几种方式:

let $Y=4; echo $X
4
_[$Y=6]=1; echo $X
6