No existe tal archivo o directorio script de shell de Linux

No existe tal archivo o directorio script de shell de Linux
#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql

echo "The program has completed"

Estoy intentando llamar a un archivo SQL desde el script de Shell, estoy ejecutando el script como bash run.sh, pero me dice que no existe tal directoriofirst.sql, pero si ejecuto ese comando por separado como mysql -uroot -pwelcome1 < /home/sai/first.sql, está funcionando, ¿hay alguna manera diferente de hacerlo? ¿escribir?

Respuesta1

Probablemente se trate de un problema de final de línea. Si abres run.shen vim y ejecutasset fileformat=unixy +aparece (para mostrarle que el archivo ahora está modificado), significa que el archivo tenía finales de línea de DOS, que Bash no puede interpretar correctamente. Guarde y salga y el script debería funcionar.

En el futuro, si está sucediendo algo obviamente extraño, utilice un comando comood -ctx1 run.shpara mirar lo que realmente hay en el archivo.

información relacionada