Ich schreibe ein Skript, um einige Dateien über sftp zu übertragen. Ich wollte die Übertragung als lokale Übertragung durchführen, indem ich das Verzeichnis mit sshfs mounte, da dies die Erstellung der erforderlichen Verzeichnisstruktur wesentlich erleichtert. Das Problem, das ich habe, ist, ich bin unsicher, wie man mit der Situation arbeitet, keine Netzwerkverbindung zu haben. Grundsätzlich muss ich feststellen, ob der Befehl sshfs fehlgeschlagen ist. Irgendwelche Ideen, wie das Skript dazu gebracht werden kann, einen Bail auszulösen, wenn das Remote-Verzeichnis nicht gemountet werden kann?Bash überprüfen, ob User mount fehlschlägt
Antwort
gerade testen Sie, ob sshfs
liefert 0 (Erfolg):
sshfs [email protected]:dir mountpoint || exit 1
Die oben genannten Arbeiten, weil in bash die logisch-oder ||
führt short-circuit evaluation. Eine schönere Lösung, die eine Fehlermeldung drucken ist folgende:
if !(sshfs [email protected]:dir mountpoint); then
echo "Mounting failed!"
exit 1
fi
Edit:
I would point out that this is how you check the success of pretty much any well behaved application on most platforms. – Sparr 1 min ago
der Tat. Noch ein wenig mehr: Die meisten Anwendungen geben bei Erfolg 0 und bei Fehlschlag einen anderen Wert zurück. Die Shell weiß dies und interpretiert daher einen Rückgabewert von 0 als wahr und jeden anderen Wert als falsch. Daher der logische oder der negative Test (mit dem Ausrufezeichen).
Ich habe versucht zu überprüfen, ob ein Verzeichnis kein Mountpoint für eine sshfs
Mount war. Am Beispiel von oben fehlgeschlagen:
if !(mountpoint -q /my/dir); then
echo "/my/dir is not a mountpoint"
else
echo "/my/dir is a mountpoint"
fi
Der Fehler: -bash: !(mountpoint -q /my/dir): No such file or directory
ich meinen Code geändert mit dem folgenden und hatte Erfolg:
if (! mountpoint -q /my/dir); then
echo "/my/dir is not a mountpoint"
else
echo "/my/dir is a mountpoint"
fi
- 1. Bash Scripting - Überprüfen Sie, ob die Bash-Variable 0 ist
- 2. JENA - Überprüfen, ob eine SPARQL-Aktualisierungsabfrage fehlschlägt oder nicht
- 3. Bash User Prompt Standardeingabe Text
- 4. Prüfen, ob das Verzeichnis ein Mount-Punkt ist?
- 5. Überprüfen Sie, ob stderr eine Pipe in Bash ist
- 6. überprüfen, ob eine Zeile leer ist mit bash
- 7. Seltsame Fehler zu überprüfen, ob Verzeichnis mit Bash-Skript existiert
- 8. Bash-Skript: um zu überprüfen, ob der Apache-Server läuft
- 9. BASH überprüfen, ob heute ist der 1. Tag des Monats
- 10. Überprüfen, ob übergebene Argument ist Datei oder Verzeichnis in BASH
- 11. Überprüfen, ob eine Funktion von einem Bash-Skript existiert
- 12. Wie kann ich überprüfen, ob einer von zwei Piped Subprozess in Python fehlschlägt?
- 13. gradle überprüfen fehlschlägt in travis-ci
- 14. Wie erkennt man, ob ein Git-Klon in einem Bash-Skript fehlschlägt
- 15. überprüfen, ob URL existiert php
- 16. Docker nfs4 mount auf Elastic Beanstalk
- 17. Wie erkennt man, ob atof oder _wtof fehlschlägt?
- 18. Wie überprüft man, ob Dateipfad in OS X mit bash gemountet ist?
- 19. Überprüfen, ob ein Paket installiert ist
- 20. Wie für Crosswalk WebView User Agent zu überprüfen?
- 21. Überprüfen, ob in Request.QueryString
- 22. überprüfen, ob name == Stichwort
- 23. Überprüfen Sie, ob Form
- 24. Javascript überprüfen, ob Wörterbuch
- 25. Schienen Felder überprüfen, ob
- 26. überprüfen, ob char isletter
- 27. Überprüfen, ob Fragment existiert
- 28. Überprüfen Sie, ob eine SQL-Tabelle existiert
- 29. Überprüfen, ob ein Commit vorhanden ist
- 30. Überprüfen Sie, ob eine Zeichenfolge „-“ und „]“ zugleich
Ich möchte darauf hinweisen, dass dies, wie Sie das überprüfen Erfolg von so ziemlich jeder gut erzogene Anwendung auf den meisten Plattformen. – Sparr
Danke für Ihre Hilfe. Ich orientiere mich immer noch, wenn es um Bash geht. – Stephan