Optionen fuer 'while'

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
Miksch
Beiträge: 1223
Registriert: 11.04.2005 13:45:48

Optionen fuer 'while'

Beitrag von Miksch » 13.05.2007 11:05:21

Hallo Forum! :)
Ich beschaeftige mich ein wenig mit einfachen bash-Scripten. Dabei ist mir ein Beispiel mit 'while' begegnet:

Code: Alles auswählen

#!/bin/bash
#Name: whileschleife
i=1
while test $i  -le 5
do
	echo $i
	i=$ [ $i=i+1 ]
done
Den Inhalt verstehe ich, es laeuft auch. Was ich nicht verstehe und auch per google nicht finden kann sind die Optionen fuer 'while', hier: -le.
Was bedeutet das? Wo finde ich wetere Erklaerungen?
TIA und viele Gruesse,
Miksch

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 13.05.2007 11:17:38

hallo,

-le bedeutet <= (kleinergleich)

das web ist voll von anleitungen , einfach mal google anschmeissen ....

http://www.google.de/search?hl=de&q=bas ... uche&meta=

Benutzeravatar
Miksch
Beiträge: 1223
Registriert: 11.04.2005 13:45:48

Beitrag von Miksch » 13.05.2007 11:27:16

Hallo finupsen! :)
Danke fuer die Erklaerung! Gegoogled habe ich ja, leider OHNE Erfolg. Vielleicht hatte ich die falschen Suchbegriffe eingegeben.
Gruss,
Miksch

P.S.: Der Stubentiger ist wunderschoen! :)
P.P.S.: Ja, ich hatte das falsche Suchwort. Ich habe nach 'while Optionen' gesucht. Auf bash-scripting bin ich leider nicht gekommen.

Benutzeravatar
GoKi
Beiträge: 2068
Registriert: 04.07.2003 23:08:56
Lizenz eigener Beiträge: MIT Lizenz

Beitrag von GoKi » 13.05.2007 12:03:19

Miksch hat geschrieben:P.P.S.: Ja, ich hatte das falsche Suchwort. Ich habe nach 'while Optionen' gesucht. Auf bash-scripting bin ich leider nicht gekommen.
Sind Parameter für den test Befehl. :) Also

Code: Alles auswählen

man bash
dort unter Conditional expressions.
MfG GoKi
:wq

ulf
Beiträge: 39
Registriert: 22.09.2002 13:00:52

Re: Optionen fuer 'while'

Beitrag von ulf » 13.05.2007 12:06:08

Miksch hat geschrieben:Was ich nicht verstehe und auch per google nicht finden kann sind die Optionen fuer 'while', hier: -le.
Was bedeutet das?
Das sind keine Optionen für "while", sondern für "test".
Wo finde ich wetere Erklaerungen?
Unter bash:

Code: Alles auswählen

help while

Code: Alles auswählen

helt test
ansonsten

Code: Alles auswählen

man test
Oder beim Linux Doc Project, Guides, das "Advanced Bash-Scripting Guide"
mal anschauen.

Gruß,
Ulf

Benutzeravatar
Silke
Beiträge: 559
Registriert: 17.05.2005 15:58:20
Wohnort: Hannover
Kontaktdaten:

Beitrag von Silke » 13.05.2007 12:20:59

Eine Erklärung, warum du bei Google nichts gefunden hast, könnte sein, dass ein - vor einem Ausdruck diesen ausschließt: -le findet also alles, was _nicht_ le enthält :-) Mit Anführungszeichen drum rum, also "-le", sollte es gehen.

Gruß,

- Silke -
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann. Das Gegenteil ist schon schwieriger.
- Kurt Tucholsky -

Benutzeravatar
Miksch
Beiträge: 1223
Registriert: 11.04.2005 13:45:48

Beitrag von Miksch » 13.05.2007 17:50:38

Nochmals ganz herzlichen Dank Euch allen!
Es hat sich fuer mich mal wieder so richtig gelohnt gefragt zu haben. Aus Euren Antworten habe ich schon viel mehr gelernt als ich zu vermuten wagte! :).
Jetzt werde ich mich auf die Sites stuerzen und weiterlesen ;)
Viele Gruesse,
Miksch

roli
Beiträge: 3174
Registriert: 10.09.2003 17:39:58

Beitrag von roli » 13.05.2007 19:53:01

Hi,

noch einen. Wenn du in Scripten mal was wie:

Code: Alles auswählen

while [ $i  -le 5 ]
do 
...
findest, wird es dir sicherlich wieder schwer fallen was zu finden. Die eckigen Klammern stehen ebenfalls fuer den Befehl test. Wenn du die benutzt achte immer darauf, das du zwischen Klammer und Ausdruck ein Leerzeichen stehen hast!
Ein weiter beliebter Fehler in diesem Zusammenhang ist es ein kleines Prog., Script, ... (Executable halt) test zu nennen. Wenn dann das aktuelle Verzeichnis nicht ganz vorne im PATH steht, wird nicht dein Script ausgefuehrt, sondern der hier besprochene Befehl.

<edit>Wenn ich schon auf [ ] hinweise, sollte ich's auch schreiben</edit>
Roland


"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"

Benutzeravatar
Miksch
Beiträge: 1223
Registriert: 11.04.2005 13:45:48

Beitrag von Miksch » 14.05.2007 07:37:56

Danke, Roland! :)
Gruss,
Miksch

Antworten