Shell-Skript-Programmierung

Message
Author
Felix2000
Posts: 35
Joined: 06. Oct 2008 14:31

#16 Post by Felix2000 »

also wäre so etwas auch korrekt?

Code: Select all

if[ "$a" -gt "$b" ] && [ "$c" -lt 13  ]
then

# mache irgendwas

fi
Nochmal kurz was anderes. Ich habe hier ein kleines Stück Code aus einem Shellskript, ich will mal prüfen, ob ich die Funktionsweise richtig verstanden habe.

Code: Select all

while [ $found=false ] && read key value
do

# mache irgendwas

done
Im Testbefehl wird überprüft, ob $found den Wert false hat. NUR wenn dieser Ausdruck korrekt ist, wird mittels read in die variablen key und value irgendwas eingelesen und der Rumpf der while-Schleife ausgeführt.

Felix2000
Posts: 35
Joined: 06. Oct 2008 14:31

#17 Post by Felix2000 »

Janka?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#18 Post by Janka »

Ich mache auch mal Pause. 8)

Das erste Beispiel ist (bis auf das fehlende Leerzeichen) korrekt. Der Befehl "if" führt den gesamten Zeileninhalt hinter sich aus, also [ "$a" -gt "$b" ] && [ "$c" -lt 13 ]. Ist $a numerisch kleiner oder gleich b ist das Ergebnis "nicht Null". && führt den Rest dahinter daher nicht mehr aus und "if" bekommt ebenfalls das "nicht Null" zu sehen und führt den "then"-Teil nicht aus. Im anderen Fall für && den Test-Befehl [ "$c" -lt 13 ] aus und gibt dessen Ergebnis zurück.

Beispiel 2: Genau. Wobei wiederum Leerzeichen fehlen.

Probiere sowas doch einfach aus.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Felix2000
Posts: 35
Joined: 06. Oct 2008 14:31

#19 Post by Felix2000 »

Hallo Janka !

Auch wenn diese Frage vielleicht nicht in diesen Thread passt, aber ich habe mir schon öfters die Frage gestellt, warum das System Unix / Linux alle im PC enthaltenen Hardwareteile als gewöhnliche Dateien verwaltet. Warum macht man so etwas?

Ich würde vermuten, um die Komplexität zu beschränken...

Felix2000
Posts: 35
Joined: 06. Oct 2008 14:31

#20 Post by Felix2000 »

Janka?

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#21 Post by Janka »

Natürlich, um die Komplexität zu *verbergen*. In vielen Fällen aber auch einfach Tradition. Es gibt auch Dinge, die nicht als Devicenodes im Dateisystem auftauchen, z.B. die Netzwerkschnittstellen.

Letztendlich sind das alles nur Grenzübergänge zwischen Kernelspace und Userspace. Diese Grenze ist das zugrunde liegende Prinzip.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

Post Reply