Вы можете создать динамический оператор case в bash, выполнив следующие действия:
1) убедитесь, что список разделен PIPE (|).IE.красный | зеленый | синий
2) обернуть вашу инструкцию case в eval
Например:
valid="red|green|blue"
eval "case \"$choice\" in
$valid)
echo do something good here
;;
*)
echo invalid colour
;;
esac"
Это работает для простой обработки переменных, я не могу этого гарантироватьбудет работать во всех случаях.