У меня есть оболочка script со следующей строкой в ней:
[ "$DEBUG" == 'true' ] && set -x
У меня есть оболочка script со следующей строкой в ней:
[ "$DEBUG" == 'true' ] && set -x
set -x
разрешает режим оболочки, где все выполненные команды печатаются на терминале. В вашем случае это явно используется для отладки, что является типичным прецедентом для set -x
: печать каждой команды по мере ее выполнения может помочь вам визуализировать поток управления script, если он не функционирует должным образом.
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