Как вы пишете операторы if else в сценарии Shell для Mac OS?

Моя цель проста. Я пытаюсь написать сценарий оболочки 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; это не имеет ничего общего с операционной системой, на которой вы пишете bash. (Хотя в этом случае macOS дает довольно сильное представление о том, какой версия из bash вы используете.)

chepner 10.04.2022 19:06
0
1
16
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы должны знать больше об условных выражениях в bash, поэтому я рекомендую вам прочитать Эта статья.

Но перед этим ваше решение должно выглядеть так:

#!/bin/bash

cd ..
cd ..
cd desktop

if [ -f newFolder ]; then
   mkdir targets
fi

if [ -d ifolder ]; then
   mkdir days
else
   mkdir reactProjects
fi

Большое спасибо за ваш ответ и эту ссылку! Обязательно прочитаю.

CoderInNeed 10.04.2022 18:58

Другие вопросы по теме