bash проверить наличие элемента массива в строке

Есть массив с исключениями

EXCLUDE_LIST=(
    "программа"
    "сканер"
    "компьютер"
)

и строка

str="Программа для просмотра изображений и факсов"

Как можно проверить наличие какого либо элемента массива в строке str? Если в строке str встречается какой-либо элемент массива, то, например, не выводить эту строку на экран.

str="Программа для просмотра изображений и факсов" - Не выводить на экран

str="Приложение для просмотра изображений и факсов" - Выводить на экран

Проверить наличие строки в массиве можно легко:

if [[ " ${array[@]} " =~ " ${value} " ]]; then
    echo "Есть такая строка в массиве"
fi

Но как сделать наоборот?


Ответы (1 шт):

Автор решения: Вадим

Добавьте ! перед условием if:

if ! [[ ${ARRAY[@]} =~ $VALUE ]]; then
    echo "Есть такая строка в массиве"
fi
→ Ссылка