Если у вас есть строка, разделенная запятыми, используйте ее для заполнения массива, а затем отсканируйте массив для поиска правильного модуля.
IFS=, read -a module_list <<< "$2"
is_selected=false; for mod in "${module_list[@]}"; do [[ $mod = moduleThree ]] && is_selected=true; done
Если вы планируете проверить список для нескольких модулей, будет имеет смысл создать ассоциативный массив из module_list
, чтобы вы могли выполнять поиск в постоянное время:
declare -A mod_array
for mod in "${module_list[@]}"; do
mod_array[$mod]=
done
mod_three_selected=false; [[ -v mod_array[moduleThree] ]] && mod_three_selected=true
Если вам не нужно значение mod_three_selected
для чего-то вроде файла конфигурации, это будет проще просто использовать ваш массив напрямую:
if [[ -v mod_array[moduleThree] ]]; then
....
fi
, а не
if [[ mod_three_selected = true ]]; then
....
fi