ошибка mkdir в скрипте bash

У вас есть столбец InvoiceID в таблице Invoices, а также в таблице InvoiceLineItems. Механизм выполнения запроса не знает, какой из них вы хотите вернуть.

Добавление псевдонима таблицы поможет:

SELECT V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
FROM Vendors V
JOIN Invoices I ON (...)
JOIN InvoiceLineItems IL ON (...)
WHERE ...
ORDER BY V.VendorName, I.InvoiceID, IL.InvoiceSequence, IL.InvoiceLineItemAmount
13
задан Dónal 30 April 2010 в 11:00
поделиться

3 ответа

Изменение:

mkdir -p $deploydir

-

mkdir -p "$deployDir"

Как и большинство оболочек Unix (возможно, даже все), Bourne (Again) Shell (sh / bash) чувствительна к регистру. Переменная dir называется deployDir (в смешанном регистре) везде, кроме команды mkdir , где она называется deploydir (все в нижнем регистре).Поскольку deploydir (все строчные буквы) считается отдельной переменной из deployDir (смешанный регистр) и deplydir (все строчные буквы) никогда не имеет присвоенного значения , значение deploydir (все строчные буквы) - это пустая строка ("").

Без кавычек ( mkdir $ deploydir ) строка фактически становится mkdir (просто команда без необходимого операнда), поэтому возникает ошибка mkdir: пропущенный операнд .

С кавычками ( mkdir "$ deploydir" ) строка фактически становится mkdir "" (команда для создания каталога с недопустимым именем каталога из пустой строки), таким образом, ошибка mkdir: невозможно создать каталог '.

Использование формы с кавычками ( mkdir "$ deployDir" ) рекомендуется в случае, если имя целевого каталога содержит пробелы.

33
ответ дан 1 December 2019 в 06:43
поделиться

Изменить:

mkdir -p $deploydir

на

mkdir -p "$deploydir"
9
ответ дан 1 December 2019 в 06:43
поделиться

По очевидным причинам в Windows нельзя ставить двоеточия в именах файлов.

1
ответ дан 1 December 2019 в 06:43
поделиться