удалить точный элемент массива bash?

Я пытаюсь удалитьтолько первое появление любого одного ключевого слова из массива bash.

ARRAY=(foo bar and any number of keywords)
keywords=(red, rednet, rd3.0)

Я удаляю ключевое слово так:ARRAY=( ${ARRAY[@]/"$keyword"/} ) тогда есликрасный» первое найденное ключевое словокрасный» от обоих ключевых слов и возвратафу бар нетто " вместо "фу бар реднет ".

Изменить: Вот пример, надеюсь, это проясняет.

for keyword in ${ARRAY[@]}; do
      if [ "$keyword" = "red" ] || [ "$keyword" = "rd3.0" ] || [ "$keyword" = "rednet" ]; then
           # HERE IS TROUBLE
           ARRAY=( ${ARRAY[@]/"$keyword"/} )
           echo "ARRAY is now ${ARRAY[@]}"
           break
      fi
 done

Который, еслиARRAY=(red rednet rd3.0) возвращаетсяnet rd3.0 вместореднет rd3.0

Если я использую unset, то:unset ${ARRAY["$keyword"]} bash жалуется, если rd3.0 находится в массиве::syntax error: invalid arithmetic operator (error token is ".0") Какой безопасный способ удалить или удалить только точное совпадение из массива?

Ответы на вопрос(2)

Ваш ответ на вопрос