Puedes usar bash -x scriptname.sh
para rastrearlo.
Asegúrate de que tu primera línea sea:
#!/bin/bash
Ingrese su ruta a bash si no es /bin/bash
Intenta ejecutar:
dos2unix script.sh
Eso convertirá finales de línea, etc. de Windows a formato Unix. es decir, quita \r (CR) de los finales de línea para cambiarlos de \r\n (CR+LF)
a \n (LF)
.
Más detalles sobre el dos2unix
comando (página man)
Otra forma de saber si su archivo está en formato dos/Win:
cat scriptname.sh | sed 's/\r/<CR>/'
La salida se verá así:
#!/bin/sh<CR>
<CR>
echo Hello World<CR>
<CR>
Esto generará el texto completo del archivo con <CR>
mostrado para cada \r
carácter en el archivo.