Годы спустя ...
Для тех, кто может следовать, логика причины амеров неверна: $ Mode - всегда либо не "C" ИЛИне «M», потому что даже значение типа «C» не является «M», что делает 2-е условие истинным.
Вот 2 однострочных варианта:
[[ $Mode != "C" && $Mode != "M" ]] && echo -e "\n*Not a valid value*" && exit 2
ЭтоАльтернатива bash позволяет легко и кратко добавить более допустимые значения:
[[ `echo $Mode | egrep "C|M"` ]] || echo -e "\n*Not a valid value*" && exit 2
Почему все пишут "$ Mode" вместо просто $ Mode?Попробуйте, прежде чем ответить, пожалуйста.