Raspberry 4 застрял в initramfs

Похоже, вы ожидаете, что $var_i_$iрасширится до значения $var_i_1, $var_i_2и т. д. -, к сожалению, этого не происходит. Для иллюстрации предположим, что мы установили

$ var_i_1=23; var_i_2=45; var_i_3=67

, затем

$ for i in $(seq 1 3); do awk -v v_i="$var_i_$i" 'BEGIN{print v_i}'; done
1
2
3

Здесь происходит следующее: оболочка анализирует $var_i_$iкак $var_i_, объединенную с$i. Поскольку $var_i_, скорее всего, не установлен/пуст, v_iи v_fпросто наследуют значение индекса цикла i.

Существуют уродливые способы выполнения той косвенности, которую вы хотите, например.

$ for i in $(seq 1 3); do awk -v v_i="$(eval echo \${var_i_$i})" 'BEGIN{print v_i}'; done
23
45
67

однако, поскольку bash поддерживает массивы, более чистым решением было бы использовать массивы для ваших значений var_iи var_f, например.

$ var_i=(23 45 67)

затем (вспоминая, что массивы нулевые -индексированные)

$ for i in $(seq 0 2); do awk -v v_i="${var_i[i]}" 'BEGIN{print v_i}'; done
23
45
67
1
01.09.2021, 20:46
1 ответ

Я тоже новичок (не могу комментировать )но пробовали ли вы команду dd (вот ссылка )SD-карта? может через виртуальный линукс, если на винде работаешь?

0
02.09.2021, 16:15

Теги

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