Как отображать команды оболочки при их выполнении в Bash
Повторяющиеся команды в Bash помогают пользователям и разработчикам понять, что происходит в их сценариях. Отображая команды по мере их выполнения, пользователи могут убедиться, что сценарий работает должным образом, и определить любые ошибки или неожиданное поведение. Вот несколько способов отобразить команды оболочки в Bash:
Способ 1: Использование команды set
Команду set в Bash можно использовать для включения или отключения параметров и установки параметров оболочки. Установив -Икс вы можете включить трассировку оболочки, что заставит Bash печатать каждую команду перед ее выполнением.
#!/бин/баш
набор -Икс
эхо 'Здравствуй, Линукс!'
набор +х
Вывод этого скрипта будет включать в себя выполняемую команду:
Способ 2: Использование ловушки DEBUG
Ловушка DEBUG — это специальная ловушка оболочки, которая выполняется перед каждой командой в сценарии Bash. Определив функцию ловушки DEBUG, вы можете распечатать каждую команду перед ее выполнением:
#!/бин/баш
функция отлаживать {
эхо ' $BASH_COMMAND '
}
ловушка отладка ОТЛАДКА
эхо 'Привет, мир!'
ловушка - ОТЛАДКА
Вывод этого скрипта будет включать в себя выполняемую команду:
Способ 3: использование параметра Bash -x
Вы также можете включить xtrace режим, пройдя -Икс параметр команды Bash при выполнении скрипта. Чтобы проиллюстрировать использование -Икс вариант здесь представляет собой простой сценарий Bash, который просто печатает строку с помощью команды echo:
#!/бин/башэхо 'Здравствуй, Линукс!'
Чтобы выполнить этот скрипт с включенным режимом xtrace, вы можете запустить скрипт, используя приведенный ниже синтаксис:
бить -Икс < scipt-имя-файла >В этом примере Баш -Икс команда выполняет скрипт с xtrace режим включен, заставляя оболочку печатать каждую команду перед ее выполнением. Затем команда echo печатает 'Привет, мир!' в консоль:
Заключение
Отображение команд оболочки по мере их выполнения — мощный способ отладки сценариев Bash. С помощью набор команда, -Икс вариант и ловушка ОТЛАДКА , вы можете легко распечатать каждую команду перед ее выполнением.