Назад | Перейти на главную страницу

Переменная инкремента в bash linux

Я пытаюсь увеличить имя переменной внутри цикла for, чтобы получить 4 динамические переменные в каждом цикле, это пример

while read line
do
        for n in `seq 1 4`
                do
                vr$n=$(echo -e "$line" | awk '{print $'$n'}')
                #test
                echo vr$n
        done
done < rst.txt

cat rst.txt 
AAA BBB CCC DDD
111 222 333 444
*** --- /// +++

Моя проблема в том, что когда я пытаюсь выполнить скрипт, он пытается выполнить результат в переменной, и я получаю сообщение об ошибке «команда не найдена» any idea plz? Спасибо

Именование переменной с помощью переменной (vr$n=value) невозможно без export. Однако я предлагаю вместо этого использовать массив:

vr[$n]=$(echo -e "$line" | awk '{print $'$n'}')

и затем укажите значение таким синтаксисом:

echo ${vr[$n]}