bash script - prüfen ob Verzeichniss / Datei vorhanden ist
bash script - prüfen ob Verzeichniss / Datei vorhanden ist
Hallo,
ich habe die letzten Tage an einem bash script gearbeitet das mir eine installroutine erleichtern soll.
durch viele nützliche Tips hier aus dem Forum ist es auch wirklich super geworden und ich würde es nun sehr gerne erweitern um eine update funktion.
bevor ich mich jedoch an die update funktion machen kann, müßte ich per script prüfen, ob ein verzeichniss vorhanden ist, wenn nein Abbruch, wenn ja, soll ein BackUp Verzeihniss erstellt werden und eine bestimmt Datei in das backup verzeichniss kopiert werden.
Leider bin ich nicht so fit in Linux und das ist auch mein erstes script, könnte mir jemand helfen wie ich diese abfrage am besten umsetze?
ich habe die letzten Tage an einem bash script gearbeitet das mir eine installroutine erleichtern soll.
durch viele nützliche Tips hier aus dem Forum ist es auch wirklich super geworden und ich würde es nun sehr gerne erweitern um eine update funktion.
bevor ich mich jedoch an die update funktion machen kann, müßte ich per script prüfen, ob ein verzeichniss vorhanden ist, wenn nein Abbruch, wenn ja, soll ein BackUp Verzeihniss erstellt werden und eine bestimmt Datei in das backup verzeichniss kopiert werden.
Leider bin ich nicht so fit in Linux und das ist auch mein erstes script, könnte mir jemand helfen wie ich diese abfrage am besten umsetze?
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
Naja, checken ob ein Verzeichnis da ist in Shell geht so:
Der Check auf Dateien geht analog mit -f. Schau dir mal man test an, da werden die diversen Checks aufgelistet.
Code: Alles auswählen
if [ -d $dir ]; then
...
else
...
fi
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
@nepos:
Sag mir doch noch mal wann man diese dummen Gänsefüsschen setzen muss. Bei mir sieht das so aus:
Sag mir doch noch mal wann man diese dummen Gänsefüsschen setzen muss. Bei mir sieht das so aus:
Code: Alles auswählen
if [ -z "$MOUNTPOINT" ] ; then
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
super danke funktioniert perfekt.
leider finde ich nichts zu man test, hast du einen Link für mich?
leider finde ich nichts zu man test, hast du einen Link für mich?
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
Code: Alles auswählen
man test
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
Mit einem [ muss man die Gänsefüsschen setzen, mit [[ nicht.
(muss heisst: gesetzt den Fall man möchte Überraschunge vermeiden).
Glaub ich.
(muss heisst: gesetzt den Fall man möchte Überraschunge vermeiden).
Glaub ich.
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
Wenn duuname hat geschrieben:@nepos:
Sag mir doch noch mal wann man diese dummen Gänsefüsschen setzen muss. Bei mir sieht das so aus:
Code: Alles auswählen
if [ -z "$MOUNTPOINT" ] ; then
Code: Alles auswählen
[ -z $foo ]
Code: Alles auswählen
[ -z ]
Bei -z und GNU test(1) scheint es trotzdem zu funktionieren, aber das grundsaetzliche Problem bleibt: Ohne Anfuehrungszeichen verschwindet der Variablenwert, mit Anfuehrungzeichen steht ein leerer String da.
Im Normalfall will man Variablen in der Shell immer mit doppelten Anfuehrungszeichen quoten, auch schon wegen Leerzeichen.
Use ed once in a while!
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
Ein anderer Grund sind Pfade, die Leerzeichen enthalten. Denn normal sieht die Shell das Space als Trenner für die Argumente an. Auch deshalb sollte man die Variablen bei den Tests usw. immer mit Double-Quotes benutzen.
Re: bash script - prüfen ob Verzeichniss / Datei vorhanden i
/usr/bin/test gibt dir in der Regel das gewünschte Ergebnis zurück.