Я бы начал с исключения ложных пробелов:
if [ "$(printf "%s" "$switch"| tr -d " ")" = tmp ]; then
Если все еще не удалось, добавьте обе эти строки перед тестом. Если их вывод отличается, исправьте свой тест.
echo tmp | od -c
echo "$switch" | od -c
Tuve este problema y descubrí (gracias a @datUser )que la coloración puede provocar que sucedan muchas cosas extrañas en los terminales. Puede eliminar esto para la ejecución de un solo comando prefijándolo con '\', así que intente iniciar mysql usando \mysql
. Eso funcionó para mí.