Как изменить значение переменной второго уровня в Bash? - PullRequest
4 голосов
/ 05 января 2012

Давайте рассмотрим 2 переменные в bash следующим образом:

X = 8  
Y = X

Если я хочу вывести значение X, используя переменную Y, я могу сделать echo ${!Y} и значение 8будет напечатано

Теперь вопрос, как я могу изменить значение X, используя переменную Y?

Ответы [ 2 ]

7 голосов
/ 05 января 2012

Используя eval:

$ X=8
$ Y=X
$ echo ${!Y}
8
$ eval $Y=3
$ echo $X
3
2 голосов
/ 05 января 2012

Это может работать для вас:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...