Hallo Gemeinde,
dies ist mein erster Beitrag bzw. Frage. Falls das hier nicht richtig untergebracht ist, bitte Sir Admin, dann eben verschieben.
Danke vorab.
Versuche mich seit einiger Zeit im Bash Sripten. Aber da ich das nie richtig gelernt habe, stolpere ich gerne mal über simple Dinge und da bräuchte ich mal Hilfe.
Habe zu meinem Problem schon einiges gelesen, aber so recht mag das nicht klappen. Aber nun zu meinem Problem:
Um diverse Dinge zu steuern, benutze ich "dialog" um ein Menu zu erstellen. Das klappt soweit.
Die Aufgabe ist nun, damit Programme zu starten und zu beenden. Dazu prüfe ich zunächst mit "pidof" nach um festzustellen, ob das Programm bereits läuft. Dementsprechend
ändert sich per Variable auch der Text im Menu. Beispiel:
1. Programm A starten # Programm läuft nicht
2. Programm B beenden # Programm läuft bereits
.....usw.
Auch das funktioniert.
Betrachten wir mal nur einen Menupunkt 1. Wenn ich den Punkt anwähle, dann wird die Variable "$choise" mit dem Rückgabewert befüllt. Nun kann "choise" bei der Auswahl
des ersten Menupunkts ja immer nur "1" sein, egal was drin steht. Allerdings wechselt der Menupunkt 1 ja seine Funktion.
Er zum Einschalten und wenn das Programm läuft zum Ausschalten benötigt. Sieht also so aus:
1. Programm A starten oder eben 1. Programm A beenden
Jedoch wie gesagt, es kommt immer eine "1" zurück, wenn man es anwählt. Das hat mich dann zu folgender Überlegung geführt, bei der die Variable $progg1 als zweite Bedingung abgefragt werden soll.
Das hat zur Folge, dass erst die "if then" abgearbeitet wird und direkt danach die zweite if Schleife. Die Ausgabe lautet hintereinanderCode:if [ "$choise" = "1" ] && [ $proggi1<0 ]; then clear; echo "Programm 1 gewaehlt und gestartet"; sleep 3; fi if [ "$choise" = "1" ] && [ $progg1>0 ]; then clear; echo "Programm 1 gewaehlt und beendet"; sleep 3; fi
Programm 1 gewaehlt und gestartet
Programm 1 gewaehlt und beendet
Alternativ habe ich den Operator "&&" gegen "-a" getauscht. Dann passiert gar nichts mehr.
Vielleicht liegt es an der falschen Syntax, aber des wegen frage ich ja hier.
Danke schon mal vorab fürs Durchlesen
Grüße
Lesezeichen