set -eux вместо set -x в профиле Bash для глобальной отладки [закрыто]

Я нашел более новую информацию здесь , в которой говорится, что графический процессор не требуется ни для режима кросс-компиляции , ни для режима удаленного синхронизированного проекта .

Я установил cuda toolkit 7.5 на linux mint 17.3, используя локальный deb-файл ubuntu 14.04. Установщик пожаловался на отсутствие графического процессора, но в остальном все закончил.

Как вам интересно, я отказался от debian из-за проблем с моей беспроводной USB-модемом (да, я использовал несвободные драйверы и т. Д.). Монетный двор нашел это без задоринки.

4
07.11.2018, 12:19
1 ответ

Это вопрос личного мнения, но я думаю, что set -eu— плохая идея для интерактивного использования. Вот что делает каждый:

  • set -eвызывает выход оболочки всякий раз, когда конвейер , список или составная команда завершается с не -нулевым статусом;
  • set -uзаставляет оболочку завершить работу всякий раз, когда она пытается расширить параметр, который не определен.

В интерактивной оболочке это означает, что любая ошибка в команде приведет к выходу из оболочки! Например, опечатка в имени команды, или rmс неверным именем файла, или echo $blahс неверным именем переменной...

set -eи set -uмогут быть полезны при написании сценариев оболочки. В частности, set -eпозволяет избежать комбинированных ошибок :, когда после сбоя команды сценарий завершает работу, что позволяет избежать проблем с последующими командами, которые выполняются не в том контексте, в котором они ожидаются.

По сравнению с вашими объяснениями обратите внимание, что -eне защищает вас от выполнения кода, который вернул бы не -нулевой статус; команда должна быть выполнена, чтобы она вернула ненулевой статус -.

17
27.01.2020, 20:46

Теги

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