O script foi editado em algum momento em uma máquina Windows. Editores no Windows geralmente usam finais de linha do DOS. Eles possuem um retorno de carro extra ( \r ) em comparação com as terminações de linha do Unix. Estes confundem o kernel quando sudo pede para executar o script.
Para corrigir o script, execute dos2unix sobre ele.
Como alternativa, remova todos os \r no script com
$ tr -d '\r' <index.sh >index.sh-new
$ # test index.sh-new to make sure it works
$ mv index.sh-new index.sh
Isso obviamente quebrará o script se ele depender do tratamento de retornos de carro literais de alguma forma.