LINUX.ORG.RU

Команда в переменную

 , ,


0

1

Есть такая команда $(awk -F= '{print $1}' $config | head -n$n | tail -n1) Она выводит, допустим asd, его мне нужно превратить в $asd, который равняется qwe.

Это не работает:

form="$$(awk -F= '{print $1}' $config | head -n$n | tail -n1)" Здесь, логично, просто прочитало $$, вывод: 12558(awk -F= '{print }' /home/q/.config/oo/config | head -n1 | tail -n1)

form="\$$(awk -F= '{print $1}' $config | head -n$n | tail -n1)" Тут не учитывается $, поэтому вывод это просто $asd, а не qwe

form="$\$(awk -F= '{print $1}' $config | head -n$n | tail -n1)" Ну а тут не учитывается вообще ничего, вывод: $$(awk -F= '{print }' /home/q/.config/oo/config | head -n1 | tail -n1)

Изменено:

forma="$(awk -F= '{print $1}' $config | head -n$n | tail -n1)"
form="${!forma}"

Это сработало.



Последнее исправление: madreyk (всего исправлений: 1)

Ответ на: комментарий от madreyk

Тогда @pinus_nigra всё правильно написал:

var_name="$(awk -F= '{print $1}' $config | head -n$n | tail -n1)"
form="${!var_name}"
Ivan_qrt ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.