Эхо-переменная с индексом

Чтобы получить такой вывод, вы можете использовать $BASH_COMMAND, например. добавить

trap 'printf "%s %s\n" + "$BASH_COMMAND" >&2' DEBUG

вместо set -x/vвверху вашего скрипта.

0
05.02.2020, 19:48
1 ответ

Похоже, вы ищете разыменование:

$ foo=bar
$ bar=somewords
$ printf "The value of %s is '%s'\n" "${foo}" "${!foo}"
The value of bar is 'somewords'

$ var_1=foo
$ var_2=bar
$ for i in 1 2; do v="var_${i}"; printf "%s\n" "${!v}"; done
foo
bar

Я мог бы, однако, предложить, вместо того, чтобы использовать ряд переменных с числовыми суффиксами, изучить массив:

$ var=("foo" "bar") # var[0]=foo; var[1]=bar
$ for v in ${var[@]}, do printf "%s\n" "${v}"; done
foo
bar
0
28.04.2021, 23:24

Теги

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