Hallo, habe ein script geschrieben, um Filesysteme zu mounten. Sollte das Verzeichnis nicht vorhanden sein, so soll es erzeugt werden. Ich bekomme aber die Fehlermeldung: Syntax error unexpected end of file. Was ist falsch? Ich habe es schon mit fi nach jedem if versucht. Das Gleiche. Bin leider noch unerfahren auf den scripten. #!/bin/sh # script Mounten vom Server if not exist /mnt/server/bernd mkdir /mnt/server/bernd if not exist /mnt/server/daten mkdir /mnt/server/daten mount -t nfs 192.168.0.1:/home/bernd /mnt/server/bernd mount -t nfs 192.168.0.1:/home/daten /mnt/server/daten # end Gruss Bernd
Hallo, Bernhard Junk wrote:
Hallo, habe ein script geschrieben, um Filesysteme zu mounten. Sollte das Verzeichnis nicht vorhanden sein, so soll es erzeugt werden. Ich bekomme aber die Fehlermeldung: Syntax error unexpected end of file. Was ist falsch? Ich habe es schon mit fi nach jedem if versucht. Das Gleiche. Bin leider noch unerfahren auf den scripten.
#!/bin/sh # script Mounten vom Server if not exist /mnt/server/bernd mkdir /mnt/server/bernd
if not exist /mnt/server/daten mkdir /mnt/server/daten
Oh weh. Ich weiß nicht was Du da geschrieben hast, vielleicht geht das unter cmd.exe... unter bash wird das nix. Ich werde jetzt keine korrigierten Scripts schicken. Statt dessen: - schau' Dir Skripte an. Z.B. in /etc/init.d/ findest Du welche. - lies die manualseite zu bash. Das ist vermutlich länger als Du erwartest. Das ist vermutlich komplizierter als Du erwartest. Das ist zu ca. 50% sehr hilfreich wenn Du skripte schreiben willst. - versteh' die nötigen Befehle - versuch' Dein Skript anzupassen. Trial and Error ist keine Schande, aber pass' auf mit rm un mv ;-) Wenn dann noch was nicht klappt können wir ja weitersehen. Kleiner Tipp noch: [ -d /mnt/server... ] Arno
mount -t nfs 192.168.0.1:/home/bernd /mnt/server/bernd mount -t nfs 192.168.0.1:/home/daten /mnt/server/daten
# end
Gruss Bernd
-- IT-Service Lehmann al@its-lehmann.de Arno Lehmann http://www.its-lehmann.de
Am Sonntag, 27. März 2005 22:13 schrieb Bernhard Junk:
Hallo, habe ein script geschrieben, um Filesysteme zu mounten. Sollte das Verzeichnis nicht vorhanden sein, so soll es erzeugt werden. Ich bekomme aber die Fehlermeldung: Syntax error unexpected end of file. Was ist falsch? Ich habe es schon mit fi nach jedem if versucht. Das Gleiche. Bin leider noch unerfahren auf den scripten.
Du solltest Dir mal in einer ruhigen Minute den : "Advanced Bash-Scripting Guide" (http://www.tldp.org/LDP/abs/html/index.html) zu Gemüte führen :) insbesondere die Syntax von if -> http://www.tldp.org/LDP/abs/html/testconstructs.html und die verschiedenen tests für Dateiobjekte -> http://www.tldp.org/LDP/abs/html/fto.html Gruss Andreas
Am Sonntag, 27. März 2005 22:13 schrieb Bernhard Junk:
habe ein script geschrieben, um Filesysteme zu mounten. Sollte das Verzeichnis nicht vorhanden sein, so soll es erzeugt werden. Ich bekomme aber die Fehlermeldung: Syntax error unexpected end of file. Was ist falsch? Ich habe es schon mit fi nach jedem if versucht. Das Gleiche. Bin leider noch unerfahren auf den scripten.
Jedes if muß zwingend mit fi abgeschlossen werden. Die Syntax eines if lautet: if Befehl then Befehl else Befehl fi Anstelle des Zeilenumbruchs kann auch ein Semikolon ; stehen. Befehl ist ein shellbefehl, oder auch Befehlskette. Der elsezweig muß nicht existieren. if, then und fi müssen existieren. Alles was nach dem if und vor dem then steht wird normal ausgeführt, wenn der Rückgabewert 0 ist, dann wird das als wahr interpretiert und alles ausgeführt, was nach dem then und vor dem else, bzw. fi steht. Ist der Rückgabewert irgendwas anderes als eine 0, so wird das als flachs interpretiert und der then Teil übersprungen. Existiert ein elseteil so wird dieser ausgeführt, anschließend hinter dem fi weiter gemacht.
#!/bin/sh # script Mounten vom Server if not exist /mnt/server/bernd
Die shell kennt den Befehl exist nicht. Eine Verneinung wird nicht mit not gemacht. Schau Dir mal den Befehl test an, damit kannst Du unter anderem das machen, was Du willst. Zu ca. 95% folgt nach if ein test (bzw. [ was das gleiche ist). Allerdings schätze ich mal das davon bis zu 20% was anderes, etwa grep, sinniger wäre.
mkdir /mnt/server/bernd
if not exist /mnt/server/daten mkdir /mnt/server/daten
mount -t nfs 192.168.0.1:/home/bernd /mnt/server/bernd mount -t nfs 192.168.0.1:/home/daten /mnt/server/daten
# end
Eine heiß und fettige Möglichkeit wäre, einfach die Datei anzulegen und die evtl. Fehlermeldung zu ignorieren. Mögliche Fehler abzufangen ist aber schon die bessere Idee. So wie Du den mount-Befehl angegeben hast, darf nur root mounten. Bernd
hmm, also mit mkdir -p /folder erzeuge ich einen Ordner ohne Fehlermeldung, wenn er schon existiert: man mkdir && probieren. Und dann mache ich zB mount -t tmpfs -o mode=1777 rTmp /rTmp # read-write für alle aber auch hier: man mount Hier gibts viel für bash: http://linuxreviews.org/beginner/abs-guide/en/index.html Schönen Sonntag ca Am Sonntag, 27. März 2005 22:13 schrieb Bernhard Junk: ..
#!/bin/sh # script Mounten vom Server if not exist /mnt/server/bernd mkdir /mnt/server/bernd
if not exist /mnt/server/daten mkdir /mnt/server/daten
..
mount -t nfs 192.168.0.1:/home/bernd /mnt/server/bernd mount -t nfs 192.168.0.1:/home/daten /mnt/server/daten
Hallo an alle, alles erstmal entsorgt. Habe die Kommentare mit interesse gelesen. Ich habe vor ein paar Jahren mal Scripte für 80x86 Assembler geschrieben. Ich bin aber jetzt zu der Überzeugung gekommen, dass ein Shell-script wohl doch was anderes ist. Ich werde mir mal ein paar Informationen dazu einlesen. Vielen Dank Gruss Bernd
Hallo Berhard, mir hat folgende Seite immer geholfen http://www.linuxfibel.de/bashprog.htm aber bevor Du "if-then-else-fi" nutzt wäre es doch besser mit : test -d /mnt/server/bernd||md /mnt/server/bernd ist nur eine zeile und macht genau das was Du willst. anschliessend nur noch mounten martin Am Sonntag, 27. März 2005 22:13 schrieb Bernhard Junk:
Hallo, habe ein script geschrieben, um Filesysteme zu mounten. Sollte das Verzeichnis nicht vorhanden sein, so soll es erzeugt werden. Ich bekomme aber die Fehlermeldung: Syntax error unexpected end of file. Was ist falsch? Ich habe es schon mit fi nach jedem if versucht. Das Gleiche. Bin leider noch unerfahren auf den scripten.
#!/bin/sh # script Mounten vom Server if not exist /mnt/server/bernd mkdir /mnt/server/bernd
if not exist /mnt/server/daten mkdir /mnt/server/daten
mount -t nfs 192.168.0.1:/home/bernd /mnt/server/bernd mount -t nfs 192.168.0.1:/home/daten /mnt/server/daten
# end
Gruss Bernd
participants (6)
-
Andreas Loesch
-
Arno Lehmann
-
Bernd Brodeßer
-
Bernhard Junk
-
Carl A. Schreiber
-
Martin hehnen