ฉันจำเป็นต้องสร้างเชลล์สคริปต์ที่ตรวจสอบการมีอยู่ของไฟล์และหากไม่มีอยู่ให้สร้างและย้ายไปยังคำสั่งถัดไปหรือเพียงแค่ย้ายไปยังคำสั่งถัดไป สิ่งที่ฉันไม่ได้ทำ
#!/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 ...
ผลตอบแทนคือ
line 5: [!: command not found
mkdir: /Scripts: File exists
ไม่รู้จะทำยังไง ทุก ๆ ที่การค้นหาของ Google จะทำให้ฉันบ่งบอกถึงสิ่งที่แตกต่าง
touch
ไฟล์และข้ามเงื่อนไข?
[
และ!
) แต่อาจเป็นประโยชน์ที่จะชี้ให้เห็นที่นี่ซึ่ง[
เป็นคำสั่งจริงใน Unix คำสั่ง Unix ต้องการพื้นที่ว่างบางส่วนระหว่างชื่อคำสั่งและข้อโต้แย้ง ใช่มันเป็น Bash builtinเหมือนกัน แต่ก็มีระบบเลขฐานสองอยู่/usr/bin/[
ในระบบส่วนใหญ่