Изменение:
mkdir -p $deploydir
до
mkdir -p "$deployDir"
Как и большинство оболочек Unix (возможно, даже всех), оболочка Bourne (Again) (sh / bash) чувствительна к регистру. Dir var везде называется deployDir
(смешанный регистр), за исключением команды mkdir
, где он называется deploydir
(все строчные буквы). Поскольку deploydir
(все строчные буквы) считаются отличной от deployDir
(смешанный регистр), а deplydir
(все строчные буквы) никогда не имели присвоенного ему значения, значение deploydir
(все строчные буквы) пустая строка ("").
Без кавычек (mkdir $deploydir
) строка фактически становится mkdir
(просто команда без требуемого операнда), таким образом, ошибка mkdir: missing operand
.
С кавычками (mkdir "$deploydir"
) строка фактически становится mkdir ""
(команда для создания каталога с недопустимым именем каталога пустой строкой), таким образом, ошибка mkdir: cannot create directory
'.
Рекомендуется использовать форму с кавычками (mkdir "$deployDir"
), если имя целевого каталога содержит пробелы.