Как получить значения переменных с одинаковым префиксом в одной команде в Linux?

#linux #shell #sh

#linux #оболочка #sh

Вопрос:

У меня есть несколько переменных env, таких как

 variable_a=xxx
variable_b=yyy
variable_c=zzz
  

Я хочу установить все это в другую переменную. Как я могу сделать это с помощью одной команды со ссылкой на префиксную переменную_
Я знаю, мы можем сделать это примерно так new_var=${variable_a} ${variable_b} ${variable_c} .
Но мне нужно знать, можем ли мы сделать это с помощью ссылки на префикс.

Комментарии:

1. with prefix referencing Что это за «ссылка на префикс»? В руководстве по bash такого понятия нет в bash

Ответ №1:

Вы можете использовать специальное ${!var*} расширение в bash, чтобы получить список заданных имен переменных. Затем вы можете выполнить итерацию по ним и использовать косвенное расширение для получения значения. А затем соедините значения пробелами.

 new_var=$(
      for i in ${!variable_*}; do
          printf "%sn" "${!i}"
      done | paste -sd ' '
)