¿Por qué un script de shell correcto daría un mensaje de error envuelto / truncado / dañado? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

¿Los scripts de shell son sensibles a la codificación y los finales de línea? 4 respuestas

Tengo un script de shell con un comando que parece que debería funcionar, pero en su lugar falla con un mensaje de error extraño envuelto / truncado / dañado. Ejemplo:

$ ls -l myfile
-rw-r----- 1 me me 0 Aug  7 12:36 myfile
$ cat myscript 
ls -l myfile
$ bash myscript
: No such file or directory

El archivo existe claramente, pero incluso si no lo tuviera, este es el tipo de mensaje de error que normalmente recibiría:

$ ls -l idontexist
ls: cannot access idontexist: No such file or directory

Observe cómo incluye el nombre de la herramienta.ls, una cadena de mensaje y el nombre de archivo mientras que el mío no.

Esto es lo que obtengo si intento usarmysql en lugar. Parece que el mensaje de error ha sido envuelto, y ahora comienza con una cita:

Command:  mysql -h myhost.example.com
Expected: ERROR 2005 (HY000): Unknown MySQL server host 'myhost.example.com' (0)
Actual:   ' (0) 2005 (HY000): Unknown MySQL server host 'myhost.example.com

Y aquí está mi comando trivial ssh que debería funcionar, o al menos dar un mensaje de error normal, pero que en cambio está envuelto para comenzar con dos puntos y termina con un extraño golpeteo:

Command:  ssh myhost
Expected: ssh: Could not resolve hostname myhost: Name or service not known
Actual:   : Name or service not knownname myhost

¿Por qué sucede esto y cómo lo soluciono?

Respuestas a la pregunta(1)

Su respuesta a la pregunta