Keine solche Datei oder kein solches Verzeichnis im Linux-Shell-Skript

Keine solche Datei oder kein solches Verzeichnis im Linux-Shell-Skript
#!/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.shin vim öffnen und ausführenset fileformat=unixund 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.shum zu sehen, was wirklich in der Datei steht.

verwandte Informationen