Kommando nicht gefunden-Bash IF-ELSE-Bedingung, wenn mit [! -d "$DIR"]

Ich habe einen code wie folgt

#!/bin/bash 
DIR="test_dir/";
if [! -d "$DIR"]; then
    # If it doesn't create it
    mkdir $DIR
fi

Aber ausführen, warum es mir dieses:

./mycode.sh: line 16: [!: command not found

Was ist der richtige Weg, es zu tun?

  • Der name [ ist der name eines Befehls nicht zufällig Satzzeichen. Ebenso benötigen Sie einen Raum zwischen cat und /etc/passwd im cat/etc/passwd, so müssen Sie ein Leerzeichen zwischen [ (der name des Befehls) und ! (eines Ihrer Argumente). Ebenso das Letzte argument muss ]. Diese Anforderung geht zurück zu der alten Geschichte (7th Edition UNIX™ - circa 1978 oder früher), wenn die shell nicht über eine test (aka [) eingebaut und das nur test Befehl war /bin/test und seiner (harten) link /bin/[.
InformationsquelleAutor neversaint | 2013-08-08
Schreibe einen Kommentar