Archiv verlassen und diese Seite im Standarddesign anzeigen : Basisfragen: Shell-Skripts
Hallo, Forum!
Ich mache gerade meine ersten Schritte Richtung Shell-Scripts und habe ein paar Fragen:
>> Der Befehl
echo "A" soll 200 mal wiederholt werden. Nach 100 Mal wiederholen soll
echo "B" ausgegeben werden (allerdings während die Schleife noch läuft). Wie wiederhole ich also diese Befehle in einem Shell-Script und wie lasse ich nach 100 mal den anderen Befehl ausgeben?
A
A
A
A
...
A
B
A
B
...
>> Wie addiere ich zur Variable "x" 1 dazu?
Lg, keyboard
Hausaufgaben über Ostern? ;)
Rechnen in der Shell (sh) geht mit $[ ... ] oder (bash) $(( ... ))
Mit "if [ ... ] ; then ... ; fi" (einfachster Fall) kannst du eine Bedingung abfragen und verzweigen.
Für Schleifen gibt es z.B. "for (( a ; b ; c )) ; do ... ; done", wobei a nur beim Einsprung in die Schleife abgearbeitet wird (Zähler initialisieren), b die Abbruchbedingung ist und c nach jedem Durchlauf ausgeführt wird (Zähler erhöhen).
Hier mal ein Beispiel zu for (bash):
$ for (( i=0 ; i<5; i++ )) ; do echo $i ; done
0
1
2
3
4
$
Gruß
L00NIX
Normalerweise verknüpft man sein Thema in den verschiedenen Foren untereinander. Holst du das noch nach?
Edit: Anscheinend nicht (http://www.unixboard.de/vb3/showthread.php?49405-Basisfragen-Shell-Skripts).
Hausaufgaben über Ostern? ;)
Rechnen in der Shell (sh) geht mit $[ ... ] oder (bash) $(( ... ))
Mit "if [ ... ] ; then ... ; fi" (einfachster Fall) kannst du eine Bedingung abfragen und verzweigen.
Für Schleifen gibt es z.B. "for (( a ; b ; c )) ; do ... ; done", wobei a nur beim Einsprung in die Schleife abgearbeitet wird (Zähler initialisieren), b die Abbruchbedingung ist und c nach jedem Durchlauf ausgeführt wird (Zähler erhöhen).
Hier mal ein Beispiel zu for (bash):
$ for (( i=0 ; i<5; i++ )) ; do echo $i ; done
0
1
2
3
4
$
Gruß
L00NIX
So ausführlich wollte ich das jetzt gar nicht. Um es konkreter zu sagen:
for a in {1..200}
do
echo "Hello"
done
Er schreibt Hello aber nur einmal hin und nicht 200mal. Das meinte ich eigentlich. Ich bin ganz brav und erledige alle meine Hausaufgaben mit dem altmodischen Taschenrechner :-)
Ich finde nur den Fehler nicht...
Lg, keyboard
Lese die Dokumentation zum Thema Expandierung und Builtin Kommandos
http://www-user.tu-chemnitz.de/~hot/unix_linux_werkzeugkasten/bash.html
Danke! Ich habe jetzt das seq Kommando als Alternative gefunden und das funktioniert super und arbeitet auch gut mit if zusammen - alles was ich brauche.
Danke für den Link auf die Dokumentation!
Danke auch an L00NIX.
lg, keyboard
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.