LINUX.ORG.RU

Подстановка переменных в bash

 


1

1

Есть переменные prefix=foo suffix=bar. Нужно вывести содержимое переменной foo_bar, построив ее имя из первых двух. Просится нечто вроде echo ${${$prefix}_${suffix}}, но баш такого не понимает.
eval echo \$${prefix}_${suffix} работает, но кмк должно быть более элегантное решение.

Deleted

должно быть более элегантное решение

Нет ничего элегантнее для решения этой задачи чем eval. Но у ksh-bash-like именно конкретно для этого придумали синтаксис ${!var}:

prefix=foo 
suffix=bar
foo_bar=xxx

v=${prefix}_${suffix}
echo ${!v}
vodz ★★★★★ ()
Ответ на: комментарий от vodz

ЯННП

Почему нет если вот ты его привёл и что такое ksh-bash-like?
В любом случае спасибо, именно это и было нужно.

Deleted ()
Ответ на: ЯННП от Deleted

Re: ЯННП

Потому что eval rm -rf --no-preserve-root / наше всё.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.