1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Shell script dynamische case Anweisung

Discussion in 'Programmieren' started by ACTGADE, Oct 20, 2008.

Thread Status:
Not open for further replies.
  1. ACTGADE

    ACTGADE ROM

    Hallo,

    ich wollte die case Anweisung mit Kdialog dynamisch aufbauen. So dass also die Größe der Befehlszeilen und der Ausdrucksblöcke dynamisch angepasst wird.

    Dabei möchte ich ausserhalb des scripts von einer .config dynamisch Werte einlesen, die in eine Variable geschrieben werden:

    MIRRORSELECT=$(kdialog --radiolist "Select your nearest mirror" $VAR1)

    Das funktioniert gut - der kdialog wird entsprechend aufgebaut.

    Nun weiss ich aber nicht, wie viele Ausdrucksblöcke ich benötige - je nachdem wie viele Befehlszeilen das script eingelesen hat. Also sollte auch dieser Teil (der manuell mit 1) Ausdruck ;; (z.B. 1) echo "Hallo" ;; 2) echo "Irgend was anderes" ;; ... n) echo "das ist der nte Ausdruck;;".
    Also sollen diese auch dynamisch erzeugt werden.

    MIRRORSELECT=$(kdialog --radiolist "Select your nearest mirror" $VAR1)
    case $MIRRORSELECT in
    echo $VAR2
    esac

    Ich habe versucht diese in eine Variable (VAR2=$(echo " 1) echo "Hallo ;; ...;; ) ausserhalb der case einzulesen und dann innerhalb der case darzustellen. Bekomme aber bei allen versuchen eine Fehlermeldung.

    Danke im voraus
     
  2. VB-Coder

    VB-Coder Megabyte

    Denkansatz:

    Du prüfst wieviel Befehlszeilen eingelesen wurden, schreibst diesen Wert in $varX , nun nimmst du dir eine WHILE Schleife und lässt diese solange durchlaufen bis der Wert der Schleife größer als $varX ist. Innerhalb der While Schleife erzeugst du nun dynamisch die Anzahl der Ausdrucksblöcke.
     
Thread Status:
Not open for further replies.

Share This Page