1

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

У меня есть сценарии, запускающие другие сценарии, и мне нужно посмотреть, как tty отключается от терминала.

Есть ли способ установить -x глобально? Я не могу установить его в скрипте задачи, потому что он генерируется динамически, не мной, но я бы хотел посмотреть, что с ним не так.

1 ответ1

3

Вызвать Bash с установленным параметром оболочки

Согласно разделу Invoking Bash руководства Bash,

Все односимвольные параметры, используемые со встроенной функцией set (см. The Set Builtin), могут использоваться в качестве параметров при вызове оболочки

Это означает, что вы можете запустить скрипт Bash с установленной опцией xtrace , непосредственно вызвав bash с опцией -x и именем файла скрипта в качестве аргумента, например,

bash -x /path/to/script

Настройка параметров оболочки для всех сценариев оболочки

Когда вы говорите «глобальный», я предполагаю, что вы хотите, чтобы он установил опцию xtrace для всех неинтерактивных вызовов Bash. Для этого установите для переменной среды BASH_ENV подходящее имя файла, а затем создайте этот файл с set -x качестве его содержимого:

export BASH_ENV=~/.bash_env
echo set -x > ~/.bash_env

Со страницы руководства:

Когда bash запускается неинтерактивно, например, для запуска сценария оболочки он ищет переменную BASH_ENV в среде, расширяет ее значение, если оно там появляется, и использует расширенное значение в качестве имени файла для чтения и выполнения. ,

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .