Shell forschleife rückwärts
roger
- programmiertechnik
1 Sven Rautenberg0 roger
Hallo,
ich habe ein bestehendes Startscript das diverse Programme startet.
Nun sollte aber beim beenden die Reichenfolge umgekehrt sein.
d.h
1. Programm start
2. Programm start
usw.
letztes Programm stop
...
2. Programm stop
1. Programm stop
Hier der Teil zum stoppen...
Den möchte ich umdrehen.
<code>
for (( s=0; s < (${#programme[*]}); s++));
do
prog=echo "${programme[s]}" | awk -F"," '{print $1}'
prog=echo $prog | sed -e "s/ //"
zeit=echo "${programme[s]}" | awk -F"," '{print $2}'
echo -n "Shutting down $prog"
killproc -TERM $prog
</code>
Gruß
roger
Moin!
Hier der Teil zum stoppen...
Den möchte ich umdrehen.
Und wo ist das Problem? Die FOR-Schleife dürfte sich vermutlich exakt so verhalten, wie jede normale C-artige FOR-Schleife:
Erstes Argument: Startzustand definieren.
Zweites Argument: Abbruchbedingung
Drittes Argument: Code für "weiter" mit dem nächsten Durchlauf.
Momentan setzt du s=0 und inkrementierst solange, wie s kleiner (${#programme[*]}) ist.
Umdrehen dürfte relativ simpel sein: Erstens dekrementieren, zweitens Startwert nicht auf die 0 setzen, drittens Abbruchbedingung nicht auf (${#programme[*]}) setzen.
<code>
for (( s=0; s < (${#programme[*]}); s++));
</code>
- Sven Rautenberg
Morgen,
Und wo ist das Problem?
Ich weiß es nicht, sonst hätte ich nicht gefragt.
.... wenn es so einfach für dich ist, warum kannst du nicht die "eine" Zeile korrigieren. !!
Gruß
roger
Hallo ,
Ich weiß es nicht, sonst hätte ich nicht gefragt.
.... wenn es so einfach für dich ist, warum kannst du nicht die "eine" Zeile korrigieren. !!
http://de.selfhtml.org/javascript/sprache/schleifen.htm#for
for (zaehler=startwert; schleifen-abbruchbedingung; aenderung zaehler)
entgegen der sinnvollen vorgabe selberfindung zu unterstützen
for (( s=${#programme[*]}; s >0; s--));
mfg
Hallo,
Ich weiß es nicht, sonst hätte ich nicht gefragt.
.... wenn es so einfach für dich ist, warum kannst du nicht die "eine" Zeile korrigieren. !!
http://de.selfhtml.org/javascript/sprache/schleifen.htm#for
for (zaehler=startwert; schleifen-abbruchbedingung; aenderung zaehler)
entgegen der sinnvollen vorgabe selberfindung zu unterstützen
for (( s=${#programme[*]}; s >0; s--));
als Übungsaufgabe für den OP hast Du geschickt einen Fehler eingebaut:
Der Startwert ist zu groß und die Schleife bricht zu früh ab.
Freundliche Grüße
Vinzenz
Hallo,
es muss so lauten
for (( s=${#programme[*]}-1; s >= 0 ; s--));
Danke
roger