Oder Bedingung in UNTIL Loop

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Schwabinger, 08.01.2011.

  1. #1 Schwabinger, 08.01.2011
    Schwabinger

    Schwabinger Grünschnabel

    Dabei seit:
    08.01.2011
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo allerseits,

    mit der folgenden Anweisung führe ich ein Schleife aus, die so lange läuft, bis ich über die serielle Schnittstelle einen Input "tuner:" bekomme, der am Anfang der empfangenen Zeile steht:

    Code:
         until inputline=$(echo $inputline | grep -e "^tuner:")
       do
        inputline=$(/usr/bin/head -n 1 < /dev/ttyS0)
       done
    
    Ich will die Anweisung so erweitert, dass die Bedingung auch dann erfüllt ist, wenn entweder "tuner:" oder "volume:" am Zeilenanfang steht.

    Vielen Dank für Eure Hilfe,

    Schwabinger
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 HeadCrash, 08.01.2011
    HeadCrash

    HeadCrash Routinier

    Dabei seit:
    16.05.2009
    Beiträge:
    482
    Zustimmungen:
    1
    Ort:
    Bayern
    Abend,

    versuchs mal so
    Code:
    grep -e "^tuner:\|^volume:"
    
    mfg
    HeadCrash
     
  4. #3 Schwabinger, 08.01.2011
    Schwabinger

    Schwabinger Grünschnabel

    Dabei seit:
    08.01.2011
    Beiträge:
    3
    Zustimmungen:
    0
    Hallo HeadCrash,

    hat bestens geklappt.

    Und jetzt stehe ich vor dem Problem, dass ich den Wert von Inputline unterschiedlich verarbeiten will, je nachdem, ob "tuner:" oder "volume:" drinsteht:
    Nach meinem Verständnis müsste das folgende den Inhalt von Inputline dann nehmen, wenn dort "tuner:" an der ersten Stelle steht. Beginnt Inputline mit ""volume:", müsste if übersprungen werden:


    Code:
    if [ echo $inputline | grep -e "^tuner:" ]; then
    
    VALUE=$(echo $inputline | /bin/sed 's/tuner://') # Entfernt Text
    VALUE=$(echo $VALUE | /usr/bin/dos2unix) # entfernt Schmierzeichen
    echo "vALue: " $VALUE
    fi
    
    Tut es aber nicht. Was mache ich falsch?
     
  5. #4 Schwabinger, 08.01.2011
    Schwabinger

    Schwabinger Grünschnabel

    Dabei seit:
    08.01.2011
    Beiträge:
    3
    Zustimmungen:
    0
    Ohne die Klammern funktioniert es:
    Code:
    if echo $inputline | grep -i "tuner"
    then
    
    Nochmal danke für die hilfe,

    Schwabinger
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Oder Bedingung in UNTIL Loop

Die Seite wird geladen...

Oder Bedingung in UNTIL Loop - Ähnliche Themen

  1. FTP/FTPS ohne ip_conntrack_ftp oder nf_conntrack_ftp mit iptables

    FTP/FTPS ohne ip_conntrack_ftp oder nf_conntrack_ftp mit iptables: Guten Tag, kennt jemand von euch eine Möglichkeit wie ich vsftpd nutzen kann zusammen mit einer Firewall ohne die im Betreff angegebenen...
  2. HAIKU ?? Oder heißt das ZevenOS?

    HAIKU ?? Oder heißt das ZevenOS?: Hallo, damals hieß es BeOS, dann HAIKU und seit langem ZevenOS? HAIKU war schnell beimhochfahren und runterfahren. Die Optik war interessant....
  3. IT-Systemadministrator/in in Teilzeit oder freiberuflich

    IT-Systemadministrator/in in Teilzeit oder freiberuflich: Wir suchen ab sofort in Teilzeit (20 Std./Woche) oder freiberuflich eine/n IT-Systemadministrator/in. Ihr Aufgabengebiet: Administration,...
  4. Funktionssuche in C: Emacs oder Vim?

    Funktionssuche in C: Emacs oder Vim?: Hallo, ich muss mir häufig C-Projekte angucken, und dann suche ich bspw., wo eine aufgerufene Funkion definiert oder deklariert (Header) wird....
  5. OpenSuse bietet aktuelles KDE mit LEAP oder Tumbleweed

    OpenSuse bietet aktuelles KDE mit LEAP oder Tumbleweed: OpenSuse bietet zwei neue Images an, die die neuesten KDE-Pakete aus den Git-Repositories enthalten. Die Images basieren auf den Varianten Leap...