Ho un codice come questo
#!/bin/bash
DIR="test_dir/";
if [! -d "$DIR"]; then
# If it doesn't create it
mkdir $DIR
fi
Ma perché l'esecuzione mi ha dato questo:
./mycode.sh: line 16: [!: command not found
Qual è il modo giusto per farlo?
Il nome '[' è il nome di un comando, non punteggiatura casuale. Proprio come è necessario uno spazio tra 'cat' e'/etc/passwd' in 'cat/etc/passwd', quindi è necessario uno spazio tra' ['(il nome del comando) e'! '(Uno dei suoi argomenti) . Allo stesso modo, l'ultimo argomento deve essere ']'. Questo requisito risale alla storia antica (settima edizione UNIX ™ circa 1978, o precedente) quando la shell non aveva un 'test' (noto anche come' [') built-in e l'unico comando' test' era '/ bin/test 'e il suo (difficile) link'/bin/['. –