Dica rápida.
Este tipo de problema tende a acontecer pela existência de caracteres de nova linha comumente utilizados no Windows em scripts a serem executados pelo interpretador shell do Linux. Mais especificamente no caso o /bin/bash.
Este problema costuma acontecer quando um script shell é editado no Windows e vai diretamente para a execução/uso.
Existem várias formas de resolvê-lo. Com o comando abaixo:
$ sed -i 's/\r$//' script_com_problema.sh
Ou com o comando abaixo:
$ tr -d '\r' < script_com_problema.sh > script_ok.sh
Outra maneira é fazendo uso do programa dos2unix.
$ dos2unix script.sh