У меня есть оболочка script со следующей строкой в ней:
[ "$DEBUG" == 'true' ] && set -x
Ответ 1
set -x разрешает режим оболочки, где все выполненные команды печатаются на терминале. В вашем случае это явно используется для отладки, что является типичным прецедентом для set -x: печать каждой команды по мере ее выполнения может помочь вам визуализировать поток управления script, если он не функционирует должным образом.
Ответ 2
set -x
Распечатывает трассировку простых команд, команд, команд case, select команд и арифметики для команд и их аргументов или связанных списков слов после их расширения и до того, как они казнены. Значение переменной PS4 расширяется, и результат значение выводится перед командой и ее расширенными аргументами.
В приведенном выше примере показано использование set -x. Когда он используется, над арифметическим выражением было расширено. Мы могли видеть, как строчная линия оценивалась шаг за шагом.
Был оценен первый шаг expr.
Был оценен второй шаг echo.
Чтобы узнать больше о наборе → посетите эту ссылку
когда дело доходит до вашей оболочки script,
[ "$DEBUG" == 'true' ] && set -x
Ваш script мог бы печатать некоторые дополнительные строки информации, когда режим выполнения выбран как DEBUG. Традиционно люди использовали режим отладки при вызове script с дополнительным аргументом, например -d