Anzeige:
Ergebnis 1 bis 6 von 6

Thema: unary operator expected

  1. #1
    Registrierter Benutzer Avatar von netmaster
    Registriert seit
    Apr 2002
    Ort
    Bad Camberg
    Beiträge
    1.659

    unary operator expected

    Hallo.

    Habe schon wieder ein Fehler, den ich nicht beheben kann.

    ./test: line 26: [: !=: unary operator expected

    Zeile 26 steht: while [ $auswahl != 9 ] ; do

    Was hab ich denn hier schon wieder falsch gemacht?
    Gruss René

  2. #2
    Premium Pils
    Registriert seit
    May 2001
    Ort
    Berlin
    Beiträge
    665
    Hi schau Dir doch mal andere Skripte in /etc/init.d an
    "Das Fernsehen, eben noch revolutionär auf der Bühne von 1989, war vom Täter zum Hirn geworden, zu einer einzigen Wahrheitsmaschine" (Rainald Goetz --word)

  3. #3
    Registrierter Benutzer
    Registriert seit
    Aug 2001
    Beiträge
    1.845
    Ich schätze, die Variable $auswahl gibt es zu dem Zeitpunkt, da Du deren Wert abfragst noch nicht. Setz mal "auswahl=0" irgendwo vor die while-Schleife. Ausserdem vergleichst Du mit "=" Strings. Geht hier zwar, aber Zahlen vergleicht man normalerweise mit (in diesem Fall) "-ne". "man test" zeigt die anderen Möglichkeiten.
    Vor drei Minuten hörten wir Lärm und dachten, es wäre Luftalarm. Ich habe die Gasmaske, die ich immer bei mir trage, gegriffen. Aber dann sagte man mir, das sei die Musik von der Moschee.
    Julie Chen, Reporterin von CBS in Kuwait

  4. #4
    Registrierter Benutzer Avatar von netmaster
    Registriert seit
    Apr 2002
    Ort
    Bad Camberg
    Beiträge
    1.659
    Also, meine Abfrage sieht so aus.

    declare auswahl=`cat $dir/log.akt` (da steht ne Zahl drin zw.
    if [ $auswahl = 1 ] ; then
    ..
    ..

    wenn ich es jetzt ändere lt. man test in

    declare auswahl=`cat $dir/log.akt`
    if [ $auswahl -ne 1 ] ; then --> oder if $auswahl -ne 1 ; then

    Dann bekomme ich die gleichen Fehlermeldungen.

    Wenn ich mir dann auf der man-page test das ansehe, hab ich doch keine Fehler.

    STRING1 = STRING2
    the strings are equal

    STRING1 != STRING2
    the strings are not equal


    Gruss René

  5. #5
    Registrierter Benutzer
    Registriert seit
    Jan 2002
    Ort
    Niedersachsen
    Beiträge
    574
    Das Problem ist eher das die Variable $auswahl leer ist.
    Darum wie melodylee schon geschrieben hat, entweder vor die while schleife auswahl=0
    Eine andere Möglichkeit wäre $auswahl in Anführungszeichen zu setzen "$auswahl"
    Sollte man auch immer machen wenn nicht klar ist ob der Variablen
    ein Wert zugewiesen wird.

    Zeile 26 steht: while [ "$auswahl" != 9 ] ; do

    gruß
    Kubuntu

  6. #6
    Registrierter Benutzer Avatar von netmaster
    Registriert seit
    Apr 2002
    Ort
    Bad Camberg
    Beiträge
    1.659
    Super, mit den Anführungszeichen funtzt es ohne Probs.

    1000 Dank.
    Gruss René

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •