Shellscript bricht bei Fehler ab

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Shellscript bricht bei Fehler ab

Beitrag von gnude » 30.06.2010 09:35:28

Hallo
ich habe ein Shellscript,
das macht folgendes
umounten eines verzeichnisses
kopieren von dateien
mounten des verzeichnisses.

mein problem, wenn das verzeichnis aus welchen gründen auch immer nicht eingebunden ist,
bricht das script ab und kopiert nicht die dateien,
wie kann ich den umount befeht einbinden,
das er bei einem nicht eingebundenen laufwerk nicht einfach das ganze script abbricht?

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Shellscript bricht bei Fehler ab

Beitrag von McAldo » 30.06.2010 10:13:34

Bau doch eine Abfrage ein, ob das Verzeichnis eingebunden ist.

Code: Alles auswählen

if [ /bin/grep "Directory" /proc/self/mounts ]; then
 ...
fi
(ungetestet)

McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
bmario
Beiträge: 1257
Registriert: 05.09.2007 12:15:47
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dresden

Re: Shellscript bricht bei Fehler ab

Beitrag von bmario » 30.06.2010 10:21:16

oder /etc/mtab
bzw.

Code: Alles auswählen

mount | grep "Directory"
als Bedingung
Nichts zu tun ist viel besser,
als mit viel Mühe nichts zu schaffen. - Laotse

Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Re: Shellscript bricht bei Fehler ab

Beitrag von gnude » 30.06.2010 11:12:03

abgetippt
ergebnis:
line 2: [: gesuchtesverzeichnis: binary operator expected

...
kenn mich nicht gut genug aus um die if schleife mit korrekter
abfrage aus dem kopf zu konstuieren.
erwartet der einen boolean werd?
McAldo hat geschrieben:Bau doch eine Abfrage ein, ob das Verzeichnis eingebunden ist.

Code: Alles auswählen

if [ /bin/grep "Directory" /proc/self/mounts ]; then
 ...
fi
(ungetestet)

McAldo

Benutzeravatar
Meillo
Moderator
Beiträge: 9252
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Shellscript bricht bei Fehler ab

Beitrag von Meillo » 30.06.2010 11:34:46

gnude hat geschrieben: ergebnis:
line 2: [: gesuchtesverzeichnis: binary operator expected

...
[...] if schleife [...]
http://if-schleife.de/ :-P
abfrage aus dem kopf zu konstuieren.
erwartet der einen boolean werd?
Der Rückgabewert des aufgerufenen Kommandos muss 0 sein.

Code: Alles auswählen

if /bin/true ; then
	echo true;
fi

if /bin/false ; then
	echo false;
fi
Für andere Arten von Tests kann man das Kommando `test' verwenden, das auch als `[' ansprechbar ist:

Code: Alles auswählen

if test "foo" = "bar" ; then
	echo gleich
fi

if [ "foo" = "bar" ] ; then
	echo gleich
fi
Weitere Infos:
- irgendeine Shellprogrammieranleitung
- man test
- man sh
Use ed once in a while!

Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Re: Shellscript bricht bei Fehler ab

Beitrag von gnude » 01.07.2010 14:51:40

kann mir jemand so das scripttechnisch umsetzten?
ich versteh nur bahnhof :roll:

Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Re: Shellscript bricht bei Fehler ab

Beitrag von gnude » 01.07.2010 15:41:36

top!
vielen dank!
kurz zur erklärung. in dem zu sichernden verzeichnis ist och ein netzwerklaufwerk smbfs eingebunden. das möchte ich nicht
komplett mitsichern. deshalb vorher aushängen,
sichern,
einhängen.

vielen dank für die hilfe !!!!!!
:THX:

Benutzeravatar
McAldo
Moderator
Beiträge: 2069
Registriert: 26.11.2003 11:43:36
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Terra / Sol-System / Milchstraße

Re: Shellscript bricht bei Fehler ab

Beitrag von McAldo » 01.07.2010 15:45:39

Mist.

Nachdem ich das Script gepostet hatte, hab ich nochmal was getestet und dabei klappte etwas nicht. Ich dachte nun, es ist voll falsch und habe meinen Beitrag gelöscht. Während dessen kam die Antwort. Das Script war doch richtig. :)
Hier also nochmal alles:

Code: Alles auswählen

#!/bin/bash
/bin/grep verzeichnis /proc/self/mounts > /dev/null
if [ "$?" -eq 0 ]; then
  # Verzeichnis aushaengen, Daten kopieren
  umount /verzeichnis
  cp daten
  mount /verzeichnis
else
  # Daten kopieren
  cp daten
  mount /verzeichnis
fi
McAldo
Achte auf deine Gedanken, denn sie werden Worte.
Achte auf deine Worte, denn sie werden Handlungen.
Achte auf deine Handlungen, denn sie werden Gewohnheiten.
Achte auf deine Gewohnheiten, denn sie werden dein Charakter.
Achte auf deinen Charakter, denn er wird dein Schicksal.
(Talmud)

Benutzeravatar
gnude
Beiträge: 1569
Registriert: 14.09.2009 22:05:28
Kontaktdaten:

Re: Shellscript bricht bei Fehler ab

Beitrag von gnude » 01.07.2010 16:23:29

hi
funktioniert soweit.
werd das jetzt den gegebenheiten anpassen und dann einsetzten!

danke nochmals !!!

:THX: :THX: :THX: :THX:

ps: leider hat man nicht immer die zeit sich in alles einzulesen. manchmal muss schnell ne funktionierende lösugn her.

Antworten