Команда не найдена - PullRequest
       4

Команда не найдена

1 голос
/ 02 февраля 2012

Я попал в проблему, которая говорит.

. / 212A1.sh: line327: [[10: команда не найдена ... (и еще 10+ изте же ошибки, я думаю, это из-за распечатки записи.

Это мой код для строки 327.

if [[$QtyAvailable -eq $lowStockMargin && $QtyAvailable -lt $lowStockmargin]]

Все работает идеально, пока я только недавно не открыл Ubuntu и не началснова запустите мою программу. Я не редактировал ничего в этой строке.

#! / bin / bash все еще объявлен в первой строке файла.

Заранее спасибо тем, кто помогал!и это сработало нормально.

Спасибо за ввод, ребята.

1 Ответ

2 голосов
/ 02 февраля 2012

Проблема здесь:

[[$QtyAvailable

В сценарии оболочки [[ - это сам токен команды. Таким образом, правила для этого токена, как и любой другой, применяются. то есть вам нужны пробелы. Таким образом, вы должны иметь это как:

[[ $QtyAvailable

есть аналогичная проблема в конце строки - ]] должен стоять сам по себе и не присоединяться к другому тексту.

Причина этого восходит к временам оригинальной оболочки Борна. [[ Bash - это просто расширение команды [ оригинальной оболочки Bourne. В те времена (когда все это были поля, а я был просто парнем, эй, жвачкой), [ была внешней командой, которая сама была символической ссылкой на внешний test.

В конечном итоге [ стал встроенной оболочкой, но семантика (то есть обработка [ как отдельной команды) осталась такой, какой она была необходима (как минимум) для обратной совместимости, поэтому сценарии, написанные для sh, где был встроен, может работать на тех, где он не был встроен. Так что теперь мы переходим к следующему моменту, и та же семантика остается. Он также имеет практическое преимущество для разработчиков bash: поиск [ или [[ в качестве отдельного токена является простым упражнением. Введите других символов в качестве разделителей, и это добавляет сложности (не много, но достаточно).

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