2017-07-23 3 views

Antwort

1

Zunächst einmal Ihr Skript ist ungültig in POSIX sh, da [[ in sh nicht definiert ist.

In bash, auf der anderen Seite, Sie Räume sind vermisst um Vergleichsoperatoren!= und ==. Deshalb wird der Ausdruck innerhalb von [[ ]] als eine von Null verschiedene Länge behandelt, was truthy ist. Daher wird echo zweimal gedruckt.

Wie so oft in StackOverflow empfohlen, ist es immer gut, Ihre Shell-Skripte über shellcheck auszuführen (auch als Befehlszeilen-Tool verfügbar), was Ihnen hilft, viele solcher Fehler zu finden und zu erklären.

Verwandte Themen