En el momento en el que editamos un script en windows, o el mismo sistema accede a él para analizarlo por virus, etc. por alguna razón inexplicable añade al inicio del fichero el carácter ^M de DOS que evita su ejecución posterior en cualquier shell de linux.
Para solucionar esto he encontrado este script que podréis utilizar para «limpiar» vuestros ficheros:
#!/bin/sh #Nombre del Fichero: undos.sh if [ $# -eq 0 ] then echo "Uso: undos [archivo]" fi for file do tr -d '15' <$file >/tmp/.undos.$$ mv /tmp/.undos.$$ $file done
Ejecución:
usuario@localhost:~$ undos