¿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 respuestasTengo 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?