Muszę utworzyć skrypt powłoki, który sprawdza obecność pliku, a jeśli nie istnieje, tworzy go i przechodzi do następnego polecenia lub po prostu przechodzi do następnego polecenia. To, co mam, tego nie robi.
#!/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 ...
Return is
line 5: [!: command not found
mkdir: /Scripts: File exists
Nie mam pojęcia, co robić. Każde miejsce, które przynosi mi wyszukiwarka Google, wskazuje coś innego.
touch
pliku i pominąć warunkowe?
[
i !
), ale prawdopodobnie warto tutaj wskazać, że [
jest to rzeczywiste polecenie w systemie Unix. Polecenie uniksowe wymaga spacji między nazwą polecenia a jego argumentami. Tak, jest to także wbudowany Bash , ale w /usr/bin/[
większości systemów jest też plik binarny .