Ich muss ein Shell-Skript erstellen, das auf das Vorhandensein einer Datei prüft. Wenn es nicht vorhanden ist, wird die Datei erstellt und der nächste Befehl oder nur der nächste Befehl ausgeführt. Was ich habe, macht das nicht.
#!/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 ...
Rückkehr ist
line 5: [!: command not found
mkdir: /Scripts: File exists
Keine Ahnung was zu tun ist. Jeder Ort, den ich bei einer Google-Suche finde, weist auf etwas anderes hin.
touch
die Datei und die Bedingung überspringen?
[
und !
), aber es ist wahrscheinlich hilfreich, hier darauf hinzuweisen, dass [
es sich um einen tatsächlichen Befehl unter Unix handelt. Ein Unix-Befehl erfordert ein Leerzeichen zwischen dem Befehlsnamen und seinen Argumenten. Ja, es ist auch eine Bash- Version , aber /usr/bin/[
auf den meisten Systemen gibt es auch eine Binärdatei .