Você está invocando o script mal.
Se você disser:
bash scriptname
então o #! A linha é ignorada e o bash pega o arquivo como se fosse uma instrução bash. Mas isso não é um script bash, é um script esperado.
O #! a linha só é interpretada pelo kernel, quando recebe o script como um comando para executar por si próprio.
Forneça a permissão de execução do script, para que você possa invocar apenas ./scriptname
ou use o comando expect
para iniciar o script.