Ho bisogno di creare uno script di shell che verifichi la presenza di un file e, se non esiste, lo crea e passa al comando successivo o passa al comando successivo. Quello che ho non lo fa.
#!/bin/bash
# Check for the file that gets created when the script successfully finishes.
if [! -f /Scripts/file.txt]
then
: # Do nothing. Go to the next step?
else
mkdir /Scripts # file.txt will come at the end of the script
fi
# Next command (macOS preference setting)
defaults write ...
Il ritorno è
line 5: [!: command not found
mkdir: /Scripts: File exists
Non ho idea di cosa fare. Ogni luogo che una ricerca di Google mi porta indica qualcosa di diverso.
touch
salvare il file e saltare il condizionale?
[
e !
), ma è probabilmente utile sottolineare qui che [
è un comando effettivo su Unix. Un comando Unix richiede uno spazio tra il nome del comando e i suoi argomenti. Sì, è anche un Bash incorporato , ma c'è anche un binario /usr/bin/[
su molti sistemi.