#!/bin/bash
mysql -uroot -pwelcome1 < /home/sai/first.sql
echo "The program has completed"
Ich versuche, eine SQL-Datei aus einem Shell-Skript aufzurufen. Ich führe das Skript als aus bash run.sh
, aber es zeigt an, dass es kein solches „directoryfirst.sql“ gibt. Wenn ich den Befehl jedoch separat als ausführe mysql -uroot -pwelcome1 < /home/sai/first.sql
, funktioniert es. Gibt es eine andere Möglichkeit zum Schreiben?
Antwort1
Dies ist wahrscheinlich ein Zeilenendeproblem. Wenn Sie run.sh
in vim öffnen und ausführenset fileformat=unix
und das +
erscheint (um Ihnen anzuzeigen, dass die Datei jetzt geändert wurde), bedeutet dies, dass die Datei DOS-Zeilenenden hatte, die Bash nicht richtig interpretieren kann. Speichern und beenden und das Skript sollte funktionieren.
Wenn in Zukunft etwas offensichtlich Seltsames passiert, verwenden Sie bitte einen Befehl wieod -ctx1 run.sh
um zu sehen, was wirklich in der Datei steht.