|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] bash debugging отладка скриптов (ликбез) |
|
[решено] bash debugging отладка скриптов (ликбез)
|
Необычный Сообщения: 4463 |
Профиль | Сайт | Отправить 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 уровни ? Как "правильно" вести отладку, и какие есть инструменты помощи программисту? |
|
------- Отправлено: 15:47, 20-01-2020 |
Забанен Сообщения: 793
|
Не следует путать "уровень" и "переменную окружения". 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 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - Ошибка в скайпе 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 |
|