Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] bash debugging отладка скриптов (ликбез)

Ответить
Настройки темы
[решено] bash debugging отладка скриптов (ликбез)

Аватара для lxa85

Необычный


Contributor


Сообщения: 4412
Благодарности: 989

Профиль | Сайт | Отправить PM | Цитировать


Здравствуйте.
Подошел в работе плотно к вопросам автоматизированной сборки приложений.
Пока не то, чтобы у нас был красивый CI/CD с кучей плюшек - пока bash наследие которое при правильном сложении звезд, дает приемлемый результат.
Но это лирика. Вопрос в другом.
В bash скрипте (Jenkins) есть строка

set +x
Документация говорит, что корректнее писать
set -x
Далее открывается новое для меня понятие PS4, которых оказывается 5(!) PS1, PS2, PS3, PS4 and PROMPT_COMMAND
+ set -o xtrace
Вопрос больше ликбез - о том, как использовать bash и его "мощь" правильно, чтобы красиво и удобно.
Т.к. сейчас это дебаг - принтами и довольно примитивная культура множественного перезапуска с исправлением одной, двух строк.
Должны же люди были придумать что удобное.

Какой бы вы документ предложили с внятным изложением этих процессов?
Где научиться правильно использовать PS1 - PS4 уровни ?
Как "правильно" вести отладку, и какие есть инструменты помощи программисту?

-------
- Я не разрешаю тебе быть плохой! Потому что плохие люди совершают плохие поступки. А это нехорошо!
(Из наставлений 5 летней девочки своей младшей сестре)


Отправлено: 15:47, 20-01-2020

 

Ветеран


Сообщения: 569
Благодарности: 192

Профиль | Цитировать


Не следует путать "уровень" и "переменную окружения". PROMPT_COMMAND, ровно как и PS0-PS4 - переменные окружения оболочки bash, хотя они и не устанавливаются автоматически все же во многом влияют на ход работы последней. Если объяснять на пальцах, то по принципу "переменная=<принимаемое_значение>".

PROMPT_COMMAND=команда
Если эта переменная установлена, bash выполняет указанную команду всякий раз, прежде чем выводить основное приглашение.

PS0=строка
Символьная строка, выводимая интерактивными оболочками после чтения команды (но перед ее выполнением).

PS1=строка
Основная строка приглашения (по умолчанию '\s-\v\$ ').

PS2=строка
Вспомогательное приглашение, применяемое в многострочных командах (по умолчанию '>').

PS3=строка
Строка приглашения в select (по умолчанию '#?').

PS4=строка
Строка приглашения к трассировке выполняемых команд (при bash -x или set -x). Следует иметь в виду, что оболочки запущенные с правами root, не наследуют эту переменную из рабочей среды. (Значение по умолчанию '+').

Теперь о set -x. Во-первых, set -o xtrace и set -x - равнозначны и активируют режим отображения команды вместе с ее аргументами во время ее выполнения, предваряя ее значением переменной PS4. Этим, собственно, обеспечивается пошаговая трассировка сценариев в bash. Во-вторых, отладка командных сценариев - понятие абстрактное, ровно настолько, что у каждого найдутся свои контраргументы что есть "тру", а что "бэд". Словом, здесь кроме чтения встроенных манов и холостыми экспериментами сути в полной мере не передать.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:56, 20-01-2020 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] bash debugging отладка скриптов (ликбез)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интернет - Ошибка в скайпе just in time debugging Arzuv Microsoft Windows 7 6 26-02-2017 09:54
Диагностика - Не работает Debugging Tools 4715 Программное обеспечение Windows 4 22-01-2014 16:59
BSOD - Debugging Tools for Windows - подробности truvo Устранение критических ошибок Windows 2 02-05-2011 18:54
[решено] Отладка/тестирование скриптов zbruy AutoIt 2 26-09-2009 16:53
*News* | Обновились Debugging Tools for Windows hasherfrog Программирование и базы данных 1 07-08-2006 20:51




 
Переход