Не указывайте свой шаблон регулярных выражений в условии if
.Это делает его похожим на простой тест на равенство строк.Используйте переменную без кавычек:
read move
pattern="[a-h][1-8] [a-h][1-8]"
if [[ $move =~ $pattern ]] ; then
Внутри двойных квадратных скобок вам также не нужно указывать переменную $move
.
Кроме того, не используйте одиночные квадратные скобки в Bash-специфичный скрипт.
if [[ $move_valid = true ]] ; then
Кстати, я не вижу, где эта переменная установлена.