Вопрос по bash – Поиск значения переменной из строки в скрипте оболочки

3

В Bash, если у меня есть:

y=10
x='y'
echo $x # prints 'y'

Теперь я хочу получить$y через $ x:

echo ${$x} # error: "bad substitution"; I want to print 10

Как мне найти значение переменной с именем$x?

У всего есть хорошее и плохое использование. Вы просто должны знать, как его использовать. m0skit0
Проверьтеeval m0skit0
@ m0skit0, пожалуйста, не eval - это имеет существенные последствия для безопасности, как описано вmywiki.wooledge.org/BashFAQ/048, Правильный путь, косвенные переменные, задокументирован вmywiki.wooledge.org/BashFAQ/006 Charles Duffy

Ваш Ответ

2   ответа
0

использованиеeval закосвенные ссылки убегая от внешнего знака доллара

eval echo "\${$x}"

Назначить переменной

eval "z=\${$x}"
echo "$z"
# 10
7

См. Расширение параметров в руководстве по bash:

echo ${!x}

Похожие вопросы