Shell-Skript .sh Function, Schleife . ?
Hallo,
ich bin ein ein Shell Anfänger und suche Eure Unterstützung:
Ich habe ein Skript zum Mounten von Externen Festplatten geschrieben.
Das Skript funktioniert auch für "einen" externen Datenträger bereits,
es wird halt einmal von oben nach unten abgearbeitet.
Es soll aber universell sein, d.h. es gibt Benutzer-Vorgaben für mehrere mögliche externe Datenträger.
Nun möchte ich natürlich nicht den Code für jedes mögliche externe Laufwerk vervielfachen,
sondern diesen Codeblock für alle mögl. Laufwerke verwenden.
Außerdem soll das Skript natürlich nur abgearbeitet werden, wenn die Benutzervariable auch definiert ist:
Dev1VolSn=
Dev2VolSn=
Dev3VolSn=
...
Ich nehme das geht irgendwie mit FUNCTION?
Ich habe aber noch keinen Plan wie ich das hier umsetzten könnte.
Nachstehend mal der ertste Teil des Skriptes.
Kann jemand helfen?
vg
Volker
ich bin ein ein Shell Anfänger und suche Eure Unterstützung:
Ich habe ein Skript zum Mounten von Externen Festplatten geschrieben.
Das Skript funktioniert auch für "einen" externen Datenträger bereits,
es wird halt einmal von oben nach unten abgearbeitet.
Es soll aber universell sein, d.h. es gibt Benutzer-Vorgaben für mehrere mögliche externe Datenträger.
Nun möchte ich natürlich nicht den Code für jedes mögliche externe Laufwerk vervielfachen,
sondern diesen Codeblock für alle mögl. Laufwerke verwenden.
Außerdem soll das Skript natürlich nur abgearbeitet werden, wenn die Benutzervariable auch definiert ist:
Dev1VolSn=
Dev2VolSn=
Dev3VolSn=
...
Ich nehme das geht irgendwie mit FUNCTION?
Ich habe aber noch keinen Plan wie ich das hier umsetzten könnte.
Nachstehend mal der ertste Teil des Skriptes.
Kann jemand helfen?
vg
Volker
#!/bin/sh
# Benutzer-Vorgaben:
# VolumeLabels oder Seriennummern:
Dev1VolSn=5B49-83DB5
Dev2VolSn=
Dev3VolSn=493E-1BED5
# Beispiel: 5B49-83DB
# Mount-Verzeichnisse: (Pfad/Verzeichnis)
Dev1MountPt=/volumeUSB1/usbshare
Dev2MountPt=
Dev3MountPt=/volumeUSB2/usbshare
# Beispiel: /volumeUSB1/usbshare
Dev1Unmount=ja
Dev2Unmount=ja
Dev3Unmount=ja
# Unmount wenn:
# - Der Ziel-Mountpoint bereits fremdbelegt ist, und/oder
# - Der externe Datenträger ist bereits gemountet, hängt aber an einem anderem Mointpoint.
# ja oder nein
# SUCHE VOLUMELABEL ODER SN ...
echo "Suche nach \"$Dev1VolSn\""
sudo blkid -o list -w /dev/null | grep -w $Dev1VolSn
Dev1VolSn_EcResult=$?
echo ScriptCheck: Dev1VolSn_EcResult: \"$Dev1VolSn_EcResult\"
if [[ $Dev1VolSn_EcResult = 0 ]]; then Dev1VolSn_Found=ja; else Dev1VolSn_Found=nein; fi
echo ScriptCheck: Dev1VolSn_Found: \"$Dev1VolSn_Found\"
if [[ $Dev1VolSn_Found = ja ]]; then echo "Ok - VolumeLabel oder SN $Dev1VolSn erkannt - Laufwerk ist angeschlossen."; else echo "Fehler: VolumeLabel oder SN $Dev1VolSn NICHT erkannt - Laufwerk nicht angeschlossen!"; fi
echo -e -n '\r\n' && echo -e -n '\r\n'
# usw ...
# usw ...
exit
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 392501
Url: https://administrator.de/contentid/392501
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
1 Kommentar