Подтвердить что ты не робот

Что делает `set -x`?

У меня есть оболочка script со следующей строкой в ​​ней:

[ "$DEBUG" == 'true' ] && set -x
4b9b3361

Ответ 1

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

Ответ 2

set -x

Распечатывает трассировку простых команд, команд, команд case, select команд и арифметики для команд и их аргументов или связанных списков слов после их расширения и до того, как они казнены. Значение переменной PS4 расширяется, и результат значение выводится перед командой и ее расширенными аргументами.

Пример

set -x
echo `expr 10 + 20 `
+ expr 10 + 20
+ echo 30
30

set +x
echo `expr 10 + 20 `
30

В приведенном выше примере показано использование set -x. Когда он используется, над арифметическим выражением было расширено. Мы могли видеть, как строчная линия оценивалась шаг за шагом.

  • Был оценен первый шаг expr.
  • Был оценен второй шаг echo.

Чтобы узнать больше о наборе → посетите эту ссылку

когда дело доходит до вашей оболочки script,

[ "$DEBUG" == 'true' ] && set -x

Ваш script мог бы печатать некоторые дополнительные строки информации, когда режим выполнения выбран как DEBUG. Традиционно люди использовали режим отладки при вызове script с дополнительным аргументом, например -d