variablenzuweisung

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von dosenfleisch, 23.09.2007.

  1. #1 dosenfleisch, 23.09.2007
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    hallo,

    mir fehlt offenbar das know-how um folgendes funktionierend zu schreiben:

    Code:
    #!/bin/bash
    name="Streng öffentlich!"
    if [ $name = "Streng öffentlich!" ]; then name="Streng Öffentlich!" ; fi
    kdialog --title "$name" --passivepopup "" 1 
    
    warum funktioniert das nicht und worin besteht die lösung?
     
  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 Wolfgang, 23.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Eventuell möchtetst du erstmal sagen was nicht funktioniert, bzw was du erwartest.

    Mit einfachen Hochkomma macht zumindest das hier was du erwartest:
    Code:
    $ name='Streng öffentlich!';if [ x"$name" = x'Streng öffentlich!' ]; then name='Streng Öffentlich!'; echo $name; fi
    Streng Öffentlich!
    
    Bei Sonderzeichen verwende einfache Hochkomma!
    Gruß Wolfgang
     
  4. #3 dosenfleisch, 24.09.2007
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    hallo Wolfgang,

    da bin ich aber froh, daß es doch noch sichtbar wurde, was ich will.

    ich habe deinen code erfolgreich bei mir ausführen können. aus dem kauderwelsch wurde tatsächlich "Streng Öffentlich".

    die hochkommata hatte ich auch schon probiert, aber keinen erfolg damit.
    nachdem ich meinen mit deinem code verglich, wurde deutlich, daß du in den test-klammern die variable $name in anführungsstrichen hast und ich nicht.
    darin wird der eigentliche fehler bei mir liegen. da helfen dann auch die hochkommata nicht heraus.

    danke Wolfgang
     
  5. #4 Wolfgang, 24.09.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Mehr noch, wie sichtbar habe ich ein x davor gesetzt.
    Wenn deine variable nämlich mal leer ist, wird ein
    Code:
    if  = String
    daraus, was die Shell mit einem Fehler quittiert.
    In meinem Fall aber ein
    Code:
    if x = xString
    
    Das kann die Shell auswerten.

    Deshalb empfehle ich das bei Stringvergleichen, wenn nicht sichegestellt ist, dass die Variable einen Wert hat.

    Gruß Wolfgang
     
  6. #5 dosenfleisch, 24.09.2007
    dosenfleisch

    dosenfleisch Foren As

    Dabei seit:
    29.03.2007
    Beiträge:
    75
    Zustimmungen:
    0
    das ist eine gute idee. in meinem falle habe ich zuvor einer leeren variablen bereits einen namen zugewiesen, aber das könnte ich mir aus diese weise in zukunft hin und wieder sparen.
     
Thema:

variablenzuweisung