Shellscript Basics
-
- Beiträge: 10
- Registriert: 09.08.2008 15:57:28
Shellscript Basics
Hihoo!
Da ich gerade eben erst beginne, mich mit shellscripts zu befassen, habe ich da ein paar Fragen:
1) welche Literatur könnt Ihr empfehlen?
2) wie kann ich feststellen, ob z.B. ein mount-Befehl erfolgreich war?
3) wie kann ich feststellen, ob das device /dev/sdg1 vorhanden ist und ob es gemountet ist?
Mein erstes Shellscript soll folgendes tun:
Feststellen, ob eine USB-Festplatte vorhanden ist, diese nötigenfalls mounten und dann ein backup drauf machen. Zum Schluss kommt dann ein umount.
Habe schon ein paar Sachen probiert (dmesg, test, grep, ...) aber noch nichts brauchbares gefunden.
Bin halt doch noch ein Linux-Neuling auf seinen ersten Schritten.
Beim Durchsuchen der Foren habe ich jetzt auch nichts gefunden, was mir weiter hilft.
Grüße,
CyberDobby
Da ich gerade eben erst beginne, mich mit shellscripts zu befassen, habe ich da ein paar Fragen:
1) welche Literatur könnt Ihr empfehlen?
2) wie kann ich feststellen, ob z.B. ein mount-Befehl erfolgreich war?
3) wie kann ich feststellen, ob das device /dev/sdg1 vorhanden ist und ob es gemountet ist?
Mein erstes Shellscript soll folgendes tun:
Feststellen, ob eine USB-Festplatte vorhanden ist, diese nötigenfalls mounten und dann ein backup drauf machen. Zum Schluss kommt dann ein umount.
Habe schon ein paar Sachen probiert (dmesg, test, grep, ...) aber noch nichts brauchbares gefunden.
Bin halt doch noch ein Linux-Neuling auf seinen ersten Schritten.
Beim Durchsuchen der Foren habe ich jetzt auch nichts gefunden, was mir weiter hilft.
Grüße,
CyberDobby
Re: Shellscript Basics
zu 1) Wenn du dir ein Buch anschaffen möchtest, kann ich dir http://www.galileocomputing.de/katalog/ ... 31xE4kAi5Iempfehlen. Ich habe zwar noch eine etwas älter Auflage vor ein paar Jahren gekauft, aber fand das Buch an sich sehr gut.
zu 2 und 3) Du kannst dir die gemounteten Verzeichnisse z.B. mit dem Befehl mount anzeigen lassen.
zu 2 und 3) Du kannst dir die gemounteten Verzeichnisse z.B. mit dem Befehl mount anzeigen lassen.
Oh, yeah!
Re: Shellscript Basics
Wenn ein Befehl keine Fehler wirft, war er erfolgreich. Du kannst das mit $? prüfen:CyberDobby hat geschrieben:2) wie kann ich feststellen, ob z.B. ein mount-Befehl erfolgreich war?
Code: Alles auswählen
mount /dev/aaa /mnt/aaa
if [ $? -eq 0 ] ; then
echo "mount went well"
else
echo "mount failed"
fi
natürlich mit3) wie kann ich feststellen, ob das device /dev/sdg1 vorhanden ist
Code: Alles auswählen
ls /dev/sdg1
Wie Duff schon sagte: mit `mount':und ob es gemountet ist?
Code: Alles auswählen
mount | grep '/dev/sdg1'
Das könnte so ablaufen:Mein erstes Shellscript soll folgendes tun:
Feststellen, ob eine USB-Festplatte vorhanden ist, diese nötigenfalls mounten und dann ein backup drauf machen. Zum Schluss kommt dann ein umount.
Habe schon ein paar Sachen probiert (dmesg, test, grep, ...) aber noch nichts brauchbares gefunden.
1) mit `ls' prüfen ob das Device vorhanden ist (exit falls nicht vorhanden)
2) es mounten (falls es schon gemountet ist, kommt automatisch ein Fehler, und es passiert nichts)
3) das Backup machen
4) unmounten
Wichtig werden sein: if, test, und Kommandosubstitution (mit Backticks)
Versuche mal und poste deine Versuche. Aber nicht sofort ... erst ein bisschen Zeit reinhängen
EDIT:
Am Anfang reichen die vielen, frei erhältlichen, Shell-Scripting Tutorials überall im Internet aus. Einfach mal danach suchen.
Sonst ist http://books.google.com/books?id=jO-iKw ... ell+script bestimmt auch nicht schlecht (hab nicht genauer rein geschaut).
http://books.google.com/books?id=dzBCH3 ... ell+script ist sehr empfehlenswert, wenn du wissen willst wie es _tatsächlich_ funktioniert -- von diesem Buch habe ich mehr über Shell-Scripting gelernt, als von jedem anderen. (Aber es ist eher für Fortgeschrittene.)
Use ed once in a while!
Re: Shellscript Basics
Da lohnt auch ein Blick inMeillo hat geschrieben:natürlich mit3) wie kann ich feststellen, ob das device /dev/sdg1 vorhanden istCode: Alles auswählen
ls /dev/sdg1
Code: Alles auswählen
man test
MfG GoKi
:wq
:wq
Re: Shellscript Basics
Natürlich! (ich glaube das waren schon zu viele ``natürlich'' für heute :-/ )GoKi hat geschrieben:Da lohnt auch ein Blick inMeillo hat geschrieben:natürlich mit3) wie kann ich feststellen, ob das device /dev/sdg1 vorhanden istCode: Alles auswählen
ls /dev/sdg1
oder der entsprechende Abschnitt der bash manpage.Code: Alles auswählen
man test
... mein Blickwinkel war zu sehr der des interaktiven Users, als der des Shell-Scripts.
Use ed once in a while!
Re: Shellscript Basics
Als Literatur empfehle ich Advanced Bash-Scripting Guide von Mendel Cooper.
Harry, hol schon mal das Rasiermesser!
-
- Beiträge: 10
- Registriert: 09.08.2008 15:57:28
Re: Shellscript Basics
Vielen Dank für die ausführlichen Antworten.
Das "$?" war der Hit - jetzt passt das Script und tut tatsächlich was ich will.
CyberDobby
Das "$?" war der Hit - jetzt passt das Script und tut tatsächlich was ich will.
CyberDobby
Re: Shellscript Basics
In meiner .bashrc habe ich am Anfang ein $? stehen, so wie hier:
Damit sehe ich anhand des returncodes immer, ob ein Befehl erfolgreich war (dann steht dort eine 0) oder etwas schief lief (meist eine 1, kann aber abweichen).
Beispiel:
Code: Alles auswählen
PS1='$? ${debian_chroot:+($debian_chroot)} ...
Beispiel:
Code: Alles auswählen
0 thorsten@box:~$ [ -f ".bashrc" ]
0 thorsten@box:~$ [ -f ".bashrc_fehlt" ]
1 thorsten@box:~$
Re: Shellscript Basics
Gute Idee. Danke.ThorstenS hat geschrieben:In meiner .bashrc habe ich am Anfang ein $? stehen,
Harry, hol schon mal das Rasiermesser!