Моя цель проста. Я пытаюсь написать сценарий оболочки MacOs, содержащий операторы if else. В частности, я хочу, чтобы сценарий создавал новый файл с именем «targets», если на моем рабочем столе существует файл с именем «newFolder». Во-вторых, я хочу, чтобы скрипт создавал новую папку с именем «days», если на рабочем столе существует папка с именем «ifolder», а если ее не существует, создайте папку с именем «reactProjects».
Вот что я пробовал:
#!/bin/bash
cd ..
cd ..
cd desktop
if exist newFolder mkdir targets
if exist targets mkdir days else mkdir reactProjects
Но у меня возникает ошибка, когда я пытаюсь запустить его через терминал. Ошибка гласит:
ifExample.sh: line 10: syntax error: unexpected end of file
Это моя первая оболочка сценария, поэтому у меня могут быть некоторые синтаксические ошибки, но, пожалуйста, дайте мне знать, если вы понимаете, как это сделать.
Спасибо!
Вы должны знать больше об условных выражениях в bash, поэтому я рекомендую вам прочитать Эта статья.
Но перед этим ваше решение должно выглядеть так:
#!/bin/bash
cd ..
cd ..
cd desktop
if [ -f newFolder ]; then
mkdir targets
fi
if [ -d ifolder ]; then
mkdir days
else
mkdir reactProjects
fi
Большое спасибо за ваш ответ и эту ссылку! Обязательно прочитаю.
Вы пишете сценарий
bash
; это не имеет ничего общего с операционной системой, на которой вы пишетеbash
. (Хотя в этом случае macOS дает довольно сильное представление о том, какой версия изbash
вы используете.)