v_sadist
@v_sadist
DevOps engineer

Как выполнить все элементы массива кроме одного в bash, а вот этот элемент отработать по-своему?

Всем привет!

Есть файлик с массивами внутри. Массивы имеют вид:
declare -A codedep

codedep[array_name]="el1 el2 el3 el4 el5"

Далее имеем скрипт, который инклюдит файл с массивом внутри:
#!/bin/bash
CODEPACK_0=$1 # Declare variable codepack name
. codepack_dependency # Include dependent codepack config file


# Triggering jobs for dependent codepacks
if [ "$CODEPACK_0" = "array_name" ] # check if used array_name, then echo elements

then
                        for i in ${codedep[$CODEPACK_0]}
                        do
                        echo $i
                        done
fi


В этом случае у меня выведутся все элементы массива.
Теперь представим, что у меня есть элемент (напр. el2), который не должен выводиться либо должен выводиться в виде
echo "$i is a super element"
Иными словами, конкретно с этим элементов нужно провести отдельную операцию в рамках цикла. Как это лучше сделать?
  • Вопрос задан
  • 299 просмотров
Решения вопроса 2
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
В начале цикла делаете проверку
if [[ "$i" == "superelement" ]]; then
tralalal
continue
fi

Ключевое слово - continue
Ответ написан
Комментировать
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
then
                        i=0
                        superelnum=2
                        while [$i -ne $superelnum ]
                        do
                        echo ${codedep[$CODEPACK_0][i]}
                        i=$(( $i+1 ))
                        done
                        # место для нужной операции с элементом
                        $i++
                        while [$i -ne ${#codedep[$CODEPACK_0][@]} ]
                        do
                        echo ${codedep[$CODEPACK_0][$i]}
                        i=$(( $i+1 ))
                        done
fi
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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