Скрипт: [! -d dir] означает

if [ ! -d /home/dir ]; then

   mkdir /home/dir

fi

Другом мин, и однажды я наткнулся на это в классе, у нас обоих были разные ответы на него, но я как бы хочу доказать ему, что, возможно, я прав.

он говорит это "создает каталог / home / dir, только если он не существует"

Я сказал нет, что он "удаляет каталог / home / dir, а затем делает его снова"

Кто прав? ... или мы оба ошибаемся?

-1
17.03.2017, 00:33
2 ответа

Ваш друг почти прав, сценарий создает / home / dir , только если это еще не каталог. (Если это что-то еще, mkdir будет запущен, но не удастся.)

[ вводит тест, который здесь это ! -d / home / dir ; -d / home / dir проверяет, существует ли / home / dir и является ли каталогом, и ! отрицает это. Все это заключено в , если / , то означает, что если / home / dir еще не является каталогом, то mkdir / home / dir будет бег.

В частности, mkdir , более краткий способ записать все, что есть

mkdir -p /home/dir
4
28.01.2020, 05:07

Ваш друг прав. Это как «если не каталог»

Но скажите ему, что вы можете оставить все условие и просто написать mkdir -p / home / dir

0
28.01.2020, 05:07

Теги

Похожие вопросы