![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Linux и FreeBSD » Программирование в *nix » [решено] bash debugging отладка скриптов (ликбез) |
|
[решено] bash debugging отладка скриптов (ликбез)
|
Необычный Сообщения: 4466 |
Здравствуйте.
Подошел в работе плотно к вопросам автоматизированной сборки приложений. Пока не то, чтобы у нас был красивый 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 |
|