Что происходит, когда сценарий встречается с ошибкой в одной из команд?

Если дисковод для гибких дисков не используется так или иначе, лучшее решение может быть для простого отключения floppy модуль. Можно сделать это следующим образом:

echo blacklist floppy > /etc/modprobe.d/00-disablefloppy.conf
2
02.05.2013, 02:09
1 ответ

[ не "специальное предложение, встроенное", и согласно POSIX a Utility syntax error (option or operand error) из встроенного неспециального предложения Shall not exit неинтерактивная оболочка ("сценарий").

Так что касается того, почему оболочка не выходит. Сценарий функционирует отлично потому что ECHO_ESC установлен на что-то нормальное, неважно, как if ответвления.

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

2
27.01.2020, 22:14
  • 1
    . Debian использует тире теперь. Спасибо за большой ответ. –  chad 02.05.2013, 02:09
  • 2
    Так... Вы говорите, что еще ответвление все еще успешно выполняется, таким образом устанавливая значение ECHO_ESC? –  chad 02.05.2013, 02:12
  • 3
    Точно тот :-) –  Adrian Frühwirth 02.05.2013, 02:59
  • 4
    , я беру произвольное предположение относительно того, куда Ваш вопрос прибывает из: Это не if сам оператор, который перестал работать как [ не часть if но команда / встроенный самостоятельно, таким образом выражение оценивает ко лжи и if выполняется else ответвление "как ожидалось". –  Adrian Frühwirth 02.05.2013, 12:20

Теги

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