Есть ли способ, как я могу напечатать имя переменной вместе с ее значением?
j=jjj
k=kkk
l=lll
for i in j k l
do
....
done
Ожидаемый результат (каждая переменная в отдельной строке):
j = jjj
k = kkk
l = lll
Кто-нибудь может предложить способ получить вышеуказанный результат?
Ответы:
Простым способом:
Выход:
${!i}
- расширение / косвенность bash- переменной (получает значение имени переменной, хранящейся в$i
)источник
{j,k,l}
короткий , с{j..l}
также:){j,k,l}
будет достаточноj k l
было бы достаточно.Если у вас bash v4.4 или новее, вы можете использовать
${VAR@A}
оператор расширения параметров.Это обсуждается в руководстве по Bash в разделе 3.5.3 Расширение параметров оболочки
Итак, с этим вы можете сделать:
И ваш результат должен быть:
источник
Или в
zsh
использованииdeclare -p
источник
Хотя
${!i}
это и является более чистым и быстрым решением для полноты, косвенная ссылка также может быть получена с помощью следующего примера:Следовательно:
дает:
Ссылки:
Косвенные ссылки
источник