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.