I'm aprendiendo a través de este tutorial para aprender scripts bash para automatizar algunas tareas para mí. Me estoy conectando a un servidor usando Putty.
El script, ubicado en .../Documentos/LOG
, es:
#!/bin/bash
# My first script
echo "Hello World!"
Y he ejecutado lo siguiente para los permisos de lectura/escritura/ejecución
chmod 755 my_script
Entonces, cuando entro en ./mi_script
, me sale el error que aparece en el título.
Algunas preguntas similares querían ver estas, así que creo que podrían ayudar:
which bash
/bin/bash
y
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games:/usr/bin/mh
He intentado añadir el directorio actual al PATH
, pero no funciona...
He visto este problema al crear scripts en Windows env y luego portarlos para que se ejecuten en un entorno Unix.
Intente ejecutar dos2unix
en el script:
http://dos2unix.sourceforge.net/
O simplemente reescribe el script en tu entorno Unix usando vi
y prueba.
Unix utiliza diferentes finales de línea por lo que no puede leer el archivo que creó en Windows. De ahí que vea ^M como un carácter ilegal.
Si desea escribir un archivo en Windows y luego portarlo, asegúrese de que su editor está configurado para crear archivos en formato UNIX.
En el notepad++, en la parte inferior derecha de la pantalla, te indica el formato del documento. Por defecto, dirá Dos\NWindows
. Para cambiarlo vaya a
Si utiliza Sublime Text en Windows o Mac para editar sus guiones:
Haz clic en Ver > Finales de línea > Unix
y guarda el archivo de nuevo.