bash: Mehrere unäre Operatoren in der if-Anweisung

7

Ist es möglich, mehrere unäre Operatoren in if-Anweisungen zu haben? Hier ist das Code-Snippet, das mir einen Fehler gibt.

Bitte korrigieren Sie den Code hier.

%Vor%

Danke Kiran

    
Kiran 22.02.2010, 09:13
quelle

4 Antworten

10
%Vor%     
ghostdog74 22.02.2010, 09:16
quelle
5

Wenn Sie die Doppelklammer von Bash verwenden, können Sie dies tun:

%Vor%

Ich finde es sauberer zu lesen als andere hier gezeigte Optionen (aber das ist subjektiv). Es hat jedoch weitere Vorteile .

Und wie ghostdog74 zeigt, sollten Sie immer Variablen mit Dateinamen angeben.

    
Dennis Williamson 22.02.2010 13:13
quelle
4

Sie können den Operator [ ... ] nur als Verknüpfung für test ... sehen. Die Optionen werden auf dieselbe Weise verwendet.

In deinem Fall könntest du entweder den ghostdog74 Weg schreiben oder:

%Vor%     
gregseth 22.02.2010 09:30
quelle
1

[ ist ein Befehl, nicht Teil der if -Anweisung. Daher sollten Sie jedes der entsprechenden Argumente übergeben, anstatt es falsch auszuführen, wie Sie es getan haben.

%Vor%     
Ignacio Vazquez-Abrams 22.02.2010 09:16
quelle