test mit not - was mache ich falsch

P

pospiech

Doppel-As
Ich möchte folgendes machen
if [ !($var -lt "2") ]; then'
Also wenn $var _nicht_ kleiner ist als 2.

Wenn ich das so schreibe dann bekomme ich aber den Fehler
syntax error near unexpected token `('

wie mache ich es dann richtig?

Matthias
 
wenn es nicht kleiner als 2 sein soll, dann soll es doch größer oder gleich zwei sein, oder? Warum arbeitest du dann nicht mit -ge ?

Dein Konstrukt kann so ja nicht funktionieren, da du mit den eckigen Klammern ja eigentlich die Funktion test aufrufst. Anders als beispielsweise in C sind dies nicht nur einfache Klammern der if-Anweisung
 
Lass die Rundklammern weg. Damit startest du eine subshell. Wenn du die Rundklammern als Argumente an test übergeben willst (bin mir nicht sicher ob das geht), müsstest du sie escapen (backslash, single- oder doublequotes) und durch Leerzeichen von den anderen Argumenten abgrenzen.

Das mit der obskuren Logik hat mein Vorposter ja schon angesprochen.
 

Ähnliche Themen

Rückgabe eines Befehls

Keine grafische Oberfläche (Debian Installation)

Keine Zugriff von Windows 10 auf Sambafreigaben

Datei auslesen und fund per MAil versenden.

Dateien löschen mit negierun

Zurück
Oben