ubuntuusers.de

shell-script ignoriert if-Anweisung

Status: Gelöst | Ubuntu-Version: Ubuntu 11.10 (Oneiric Ocelot)
Antworten |

henry1988

Anmeldungsdatum:
21. Oktober 2011

Beiträge: 6

Hallo zusammen

ich habe mir soeben mein erstes eigenes Script gebastelt (bin nich nicht lange auf der guten Seite der Macht 😉 ), habe jetz aber folgendes Problem:

Das Script enthält eine If-Anweisung, natürlich gefolgt von then und else. Leider funktiniert das nicht richtig. Ich habe es mit einem Beispiel-Script aus dem "Bash-Skripting-Guide für Anfänger" probiert, mit dem selben Ergebnis.

Das Script aus dem "Bash-Skripting-Guide für Anfänger":

Unbenannt

und die Ausgabe:

Unbenannt

Weiss jemand einen guten Rat für mich? Vielen Dank für eure Hilfe!

Viele Grüße

Henry

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13205

Hallo,

henry1988 schrieb:

Weiss jemand einen guten Rat für mich? Vielen Dank für eure Hilfe!

Die bash kann es:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
$ ./x.sh
Wie ist Ihr Name?
root
Hallo Administrator.
$ cat x.sh
#!/bin/bash
echo "Wie ist Ihr Name?"
read ANTWORT
if [ "$ANTWORT" == "root" ]
    then
        echo "Hallo Administrator."
    else
        echo "Hallo Benutzer."
fi
$

Aber mit der dash geht es nicht - und damit auch nicht mit /bin/sh, die unter Ubuntu auf die dash verlinkt ist:

1
2
3
4
5
$ dash x.sh
Wie ist Ihr Name?
root
x.sh: 4: [: root: unexpected operator
Hallo Benutzer.

Du hast ein "=" zu viel:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
$ dash x.sh
Wie ist Ihr Name?
root
Hallo Administrator.
$ cat x.sh
#!/bin/bash
echo "Wie ist Ihr Name?"
read ANTWORT
if [ "$ANTWORT" = "root" ]
    then
        echo "Hallo Administrator."
    else
        echo "Hallo Benutzer."
fi

Ciao

robert

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

henry1988 schrieb:

Das Script aus dem "Bash-Skripting-Guide für Anfänger":

Unbenannt

und die Ausgabe:

Unbenannt

So kurze Scripte bitte gleich hier reinkopieren, und als Code formatieren. Ab 100 Zeilen kann man zum paste-Service wechseln.

henry1988

(Themenstarter)

Anmeldungsdatum:
21. Oktober 2011

Beiträge: 6

Vielen Dank Robert

Die Sache mit dem Gleichheitszeichen ist es gewesen. Jetzt funktioniert es.

Ist aber dann nicht ein Fehler in der Wiki-Seite?

MFG Henry

jakon Team-Icon

Lokalisierungsteam

Anmeldungsdatum:
16. November 2009

Beiträge: 419

henry1988 schrieb:

Ist aber dann nicht ein Fehler in der Wiki-Seite?

Ja, ist es nicht. Du hast das Skript vermutlich mit sh/dash aufgerufen.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17620

Wohnort: Berlin

In dem Zusammenhang auch vielleicht hilfreich shebang (womöglich noch in der Baustelle).

henry1988

(Themenstarter)

Anmeldungsdatum:
21. Oktober 2011

Beiträge: 6

ok, thanks @ all!

Antworten |