если !mkdir -p $ APPLICATION_DIRECTORY / conf - PullRequest
0 голосов
/ 24 мая 2018

Может кто-нибудь сказать мне, что делает следующая команда оболочки?

if ! mkdir -p $APPLICATION_DIRECTORY/conf

Ответы [ 2 ]

0 голосов
/ 26 мая 2018

Вы также можете использовать прямую логику (более понятную): если mkdir -p ...

пример:

if mkdir -p "$APPLICATION_DIRECTORY/conf"; then 
   echo "The directory was successfully created"
else 
   echo "There was an error creating the directory"
fi
0 голосов
/ 24 мая 2018

mkdir -p "$APPLICATION_DIRECTORY/conf" пытается создать именованный каталог, создавая при этом любые отсутствующие родительские каталоги.Как и каждая команда, она имеет целочисленное состояние выхода, где 0 указывает, что каталог был успешно создан, а ненулевое значение указывает на ошибку какого-либо рода.

Команда if проверяет состояние выхода своей команды, а не логическое значение, как в большинстве других языков программирования.Оператор ! отменяет состояние выхода: ненулевое состояние выхода преобразуется в 0, а состояние выхода 0 преобразуется в 1.

Другими словами,

if ! mkdir -p "$APPLICATION_DIRECTORY/conf"; then
  echo "There was an error creating the directory"
else
  echo "The directory was successfully created"
fi
...