#!/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.sh
en vim y ejecutasset fileformat=unix
y +
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.sh
para mirar lo que realmente hay en el archivo.