Hallo erstmal, Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte. -- Mit freundlichen Grüßen Sascha Peters linux@progressing.de
Sascha Peters wrote:
Hallo erstmal,
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
Ich nehme an Du meinst etwas wie dieses ?: #---------------- declare -i a=0 declare -i i=10 while [ $a -lt $i ]; do let a++ echo $a done #--------------- Gruß, Daniel
* Sascha Peters schrieb am 05.Jul.2001:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
while test $VAR -gt 0 do inkrement $VAR done Was ich hier als inkrement $VAR bezeichnet habe kanst Du mit verschiedenen Methoden machen: Mit bash, aber imkompatibel: VAR=$(($VAR - 1)) mit expr: VAR=`expr $VAR - 1` mit bc: VAR=`echo $VAR - 1|bc` und sicherlich noch viele andere Methoden. Bernd -- Probleme mit dem Drucker? Schon die Druckercheckliste beachtet? http://localhost/doc/sdb/de/html/drucker-howto.html | Auch lesenswert: Oder schon das Drucker-HOWTO gelesen? | man lpr file://usr/shar/doc/howto/de/DE-Drucker-HOWTO.txt.gz | Zufallssignatur 3
Hallo Bernd, Bernd Brodesser schrieb:
* Sascha Peters schrieb am 05.Jul.2001:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
while test $VAR -gt 0 do inkrement $VAR
^^^^^^^^^
done
Was ich hier als inkrement $VAR bezeichnet habe kanst Du mit verschiedenen Methoden machen:
Mit bash, aber imkompatibel:
VAR=$(($VAR - 1)) ^^^ mit expr:
VAR=`expr $VAR - 1` ^^^ mit bc:
VAR=`echo $VAR - 1|bc` ^^^ und sicherlich noch viele andere Methoden.
Huch? :%s/ - / + / :-) So long, Norbert
* Norbert Kordts schrieb am 05.Jul.2001:
Hallo Bernd,
Bernd Brodesser schrieb:
* Sascha Peters schrieb am 05.Jul.2001:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
while test $VAR -gt 0 do inkrement $VAR
^^^^^^^^^
done
Was ich hier als inkrement $VAR bezeichnet habe kanst Du mit verschiedenen Methoden machen:
Mit bash, aber imkompatibel:
VAR=$(($VAR - 1)) ^^^ mit expr:
VAR=`expr $VAR - 1` ^^^ mit bc:
VAR=`echo $VAR - 1|bc` ^^^ und sicherlich noch viele andere Methoden.
Huch? :%s/ - / + / :-)
Huch! Nein, dann lieber s/in/de/ sonst gibts Probleme mit der Abfrage. Bernd -- Hast Du bei Problemen schon in der SuSE-Support-Datenbank (SDB) nachgesehen? Auf Deinem Rechner: http://localhost/doc/sdb/de/html/index.html | mit Apache: http://localhost/doc/sdb/de/html/key_form.html | Zufalls- Tagesaktuell bei SuSE: http://sdb.suse.de/sdb/de/html/index.html | signatur 2
Hallo erstmal, Am Donnerstag, 5. Juli 2001 um 21:00 schrieb Bernd Brodesser:
* Norbert Kordts schrieb am 05.Jul.2001:
Bernd Brodesser schrieb:
* Sascha Peters schrieb am 05.Jul.2001:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
while test $VAR -gt 0 do inkrement $VAR ^^^^^^^^^ done
Was ich hier als inkrement $VAR bezeichnet habe kanst Du mit verschiedenen Methoden machen:
Mit bash, aber imkompatibel: VAR=$(($VAR - 1)) mit expr: VAR=`expr $VAR - 1` mit bc: VAR=`echo $VAR - 1|bc` ^^^ und sicherlich noch viele andere Methoden. Huch? :%s/ - / + / :-) Huch! Nein, dann lieber s/in/de/ sonst gibts Probleme mit der Abfrage.
Ich wollte ja nicht Gott weiß was für eine Diskussion auslösen und steh nun vor einem viel größeren Problem. Welche Lösung nehme ich denn nun ;-) aber das kann ich bestimmt auch lösen! danke an alle! -- Mit freundlichen Grüßen Sascha Peters linux@progressing.de
Sascha Peters wrote:
Hallo erstmal,
Am Donnerstag, 5. Juli 2001 um 21:00 schrieb Bernd Brodesser:
* Norbert Kordts schrieb am 05.Jul.2001:
Bernd Brodesser schrieb:
* Sascha Peters schrieb am 05.Jul.2001:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
while test $VAR -gt 0 do inkrement $VAR ^^^^^^^^^ done
Was ich hier als inkrement $VAR bezeichnet habe kanst Du mit verschiedenen Methoden machen:
Mit bash, aber imkompatibel: VAR=$(($VAR - 1)) mit expr: VAR=`expr $VAR - 1` mit bc: VAR=`echo $VAR - 1|bc` ^^^ und sicherlich noch viele andere Methoden. Huch? :%s/ - / + / :-) Huch! Nein, dann lieber s/in/de/ sonst gibts Probleme mit der Abfrage.
Ich wollte ja nicht Gott weiß was für eine Diskussion auslösen und steh nun vor einem viel größeren Problem. Welche Lösung nehme ich denn nun ;-) aber das kann ich bestimmt auch lösen!
Wenn Du ein /bin/sh-Script schreiben willst, dann ist expr die einzig richtige von beiden Möglichkeiten! Wenn Du ein bash-Script schreiben willst, kannst Du wählen. let wäre schneller (let ist ein bash-builtin, expr ist extern). Ralf
* Ralf Corsepius schrieb am 06.Jul.2001:
Sascha Peters wrote:
Ich wollte ja nicht Gott weiß was für eine Diskussion auslösen und steh nun vor einem viel größeren Problem. Welche Lösung nehme ich denn nun ;-) aber das kann ich bestimmt auch lösen!
Wenn Du ein /bin/sh-Script schreiben willst, dann ist expr die einzig richtige von beiden Möglichkeiten!
bc ginge genausogut.
Wenn Du ein bash-Script schreiben willst, kannst Du wählen. let wäre schneller (let ist ein bash-builtin, expr ist extern).
bc ist auch extern. Andere Möglichkeit wäre: gleich das ganze Skript in perl schreiben. Bernd -- ROTFL = Rolling On The Floor, Laughing = Auf dem Boden wälzen, lachend. SCNR = Sorry, Could Not Resist = Sorry, Ich konte nicht wiederstehen. AFAIK = As Far As I Know = So weit ich weis|BTW = By The Way = Nebenbei bemerkt IMHO = In My Humble Opinion = meiner bescheidenen Meinung nach |Zufallssig. 9
On Fri, 06 Jul 2001 at 12:17 (+0200), Bernd Brodeßer wrote:
* Ralf Corsepius schrieb am 06.Jul.2001:
Sascha Peters wrote:
Wenn Du ein bash-Script schreiben willst, kannst Du wählen. let wäre schneller (let ist ein bash-builtin, expr ist extern).
bc ist auch extern.
Andere Möglichkeit wäre: gleich das ganze Skript in perl schreiben.
ACK. Oft gar keine schlechte Idee: Perl ist besser standardisiert, um man muss sich nicht mit zig verschiedenen "Versionen" desselben Programmes auseinandersetzen, wo jedes seine andere Bugs und Features hat. Gruß, Bernhard -- "And when I don't know of a bug, it doesn't exist." [Linus Torvalds]
On Don, 05 Jul 2001, Sascha Peters wrote:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das?
help let man bash, Abschnitte "Arithmetic Expansion" und "ARITHMETIC EVALUATION" i=0; j=0; k=0 while Bedingung do let i=i+1 j=$[j+1] ## Oder j=$((j+1)) ## Doppelte (( )) !! k=`echo "$k+1" | bc` printf "%2i %2i %2i\n" $i $j $k done (siehe auch man 1 printf, man 3 printf).
bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
man bc (s. das Beispiel oben). -dnh -- Paranoid schizophrenics outnumber their enemies at least two to one. -- from the fortune file
On Thu, 05 Jul 2001 at 18:24 (+0200), David Haller wrote:
On Don, 05 Jul 2001, Sascha Peters wrote:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das?
help let man bash, Abschnitte "Arithmetic Expansion" und "ARITHMETIC EVALUATION"
i=0; j=0; k=0 while Bedingung do let i=i+1 j=$[j+1] ## Oder j=$((j+1)) ## Doppelte (( )) !! ^^^^^^^^^^^^^ k=`echo "$k+1" | bc` printf "%2i %2i %2i\n" $i $j $k done
Geht "let" denn auch auf einer Bourne-Shell? Im Betreff steht /bin/sh, daher sollte die Antwort auch zu /bin/sh passen. Wenn in einem Skript #!/bin/sh drüber steht, sollte auch das drunter sein. Dass /bin/sh auf einem Linuxsystem normalerweise ein Link auf /bin/bash ist, tut nichts zur Sache. Gruß, Bernhard -- Gefällt der Ausdruck von Mutt nicht? Muttprint verschönert ihn. http://home.t-online.de/~f.walle/muttprint/"
On Don, 05 Jul 2001, Bernhard Walle wrote:
On Thu, 05 Jul 2001 at 18:24 (+0200), David Haller wrote:
let i=i+1 j=$[j+1] ## Oder j=$((j+1)) ## Doppelte (( )) !! ^^^^^^^^^^^^^ k=`echo "$k+1" | bc`
Geht "let" denn auch auf einer Bourne-Shell?
AFAIK ja.
Im Betreff steht /bin/sh, daher sollte die Antwort auch zu /bin/sh passen. Wenn in einem Skript #!/bin/sh drüber steht, sollte auch das drunter sein. Dass /bin/sh auf einem Linuxsystem normalerweise ein Link auf /bin/bash ist, tut nichts zur Sache.
Ack. Bash-spezifisch sind $[] und $(()), IIRC. -dnh -- Es wäre alles so schön auf dieser Welt, wären da nicht diese lästigen Menschelein. [WoKo in dag°]
* Bernhard Walle schrieb am 05.Jul.2001:
Geht "let" denn auch auf einer Bourne-Shell?
Nein. Üblich war mit expr. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/produkte/buecher/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/shar/doc/sdb/de/html/literatur.html |Zufallssignatur 5
Hello Sascha, Thursday, July 05, 2001, 5:17:22 PM, Sascha Peters wrote:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte. Ein "Rechner" ist in der Shell eingebaut "expr" z_anz=`expr $z_anz + 1` oder allg "man expr" mal lesen. -- Best regards, Roland mailto:roland.suehsmuth@boecker-online.de
On Fri, 06 Jul 2001 at 08:06 (+0200), Roland Suehsmuth wrote:
Hello Sascha,
Thursday, July 05, 2001, 5:17:22 PM, Sascha Peters wrote:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte. Ein "Rechner" ist in der Shell eingebaut "expr" z_anz=`expr $z_anz + 1` oder allg "man expr" mal lesen.
berwal@hugo:~ > type expr expr is /usr/bin/expr berwal@hugo:~ > type test test is a shell builtin Wenn expr in der Shell eingebaut wäre, würde da nicht /usr/bin/expr stehen -> expr ist ein Programm! Gruß, Bernhard -- "And when I don't know of a bug, it doesn't exist." [Linus Torvalds]
Hello Bernhard, Friday, July 06, 2001, 9:40:17 AM, Bernhard Walle wrote: berwal@hugo:~ >> type expr
expr is /usr/bin/expr Natürlich. Sorry, da ist mir "eingebaut" zu schnell rausgerutscht. expr ist ein Programm! ACK. -- Best regards, Roland mailto:roland.suehsmuth@boecker-online.de
* Roland Suehsmuth schrieb am 06.Jul.2001:
Thursday, July 05, 2001, 5:17:22 PM, Sascha Peters wrote:
Hallo, ich will eine while schleife nutzen und eine Integer Variabel inkrementieren, wie mache ich denn das? bi kein stück weiter gekommen und konnte auch kein Consolen Rechner finden den man einbauen konnte.
Ein "Rechner" ist in der Shell eingebaut "expr" z_anz=`expr $z_anz + 1` oder allg "man expr" mal lesen.
Für diese Zwecke ist es völlig ausreichend. Aber als wenn Du einen Rechner brauchst, dann ist bc besser. Bernd -- Welches Buch ist zu empfehlen? Schon mal bei SuSE vorbeigesehen? http://www.suse.de/de/produkte/buecher/index.html oder die Empfehlungen der SuSE-Entwickler auf dem eigenen Rechner? file:///usr/shar/doc/sdb/de/html/literatur.html |Zufallssignatur 5
participants (8)
-
B.Brodesser@t-online.de
-
Bernhard Walle
-
D. Wolpert
-
David Haller
-
Norbert Kordts
-
Ralf Corsepius
-
Roland Suehsmuth
-
Sascha Peters