Отладка скриптов (bash и ко)

Все о программировании под *nix
Аватара пользователя
bobrik
Неотъемлемая часть форума
Сообщения: 313
Зарегистрирован: 17 авг 2005, 12:42
Откуда: Витебск
Контактная информация:

Сообщение bobrik »

Perl/shell + прогі.
Рубі - вы зусім вар'яты? =))
http://bobrik.name - я не вар'ят

Аватара пользователя
grub
Неотъемлемая часть форума
Сообщения: 849
Зарегистрирован: 13 сен 2006, 10:29
Откуда: Минск
Контактная информация:

Сообщение grub »

[оффтопик]
Кстати, поразить всех ООПовым шеллом грозилась небезызвестная корпорация -- производитель Другой Операционной Системы :)
[/оффтопик]
Змагайся і адпачывай!

master_of_shadows
Маньяк
Сообщения: 199
Зарегистрирован: 06 мар 2004, 19:23
Откуда: Минск
Контактная информация:

Сообщение master_of_shadows »

grub писал(а):ЕМНИП, это стандартный иксовый механизм...
Скопировать = выделить + шифт
Вставить = средняя кнопка мыши


Я сам долгое время мучался, пока cympak не показал. :)
Ээээ. Не понял... Вот к примеру есть у меня терминал с vim. Я в нём набираю регексп поиска. После этого хочу этот же регексп скопировать в другой терминал, в command promt. Как это сделать?

То что выделенный текст вставляется по среднему батону - это я знаю. Но так работает далеко не всегда.

Ну а ООП шел это наверное круто :).
[Ubuntu 8.10] @ home PC & MSI Wind

...take a look at the sky, just before you die...

booxter
Неотъемлемая часть форума
Сообщения: 1427
Зарегистрирован: 04 апр 2004, 21:04

Сообщение booxter »

master_of_shadows, use screen. Ён дазваляе капіраваць усё, што можна наогул убачыць.

Аватара пользователя
cympak
Увлекающийся
Сообщения: 114
Зарегистрирован: 26 окт 2005, 13:38

Сообщение cympak »

mend0za писал(а):
master_of_shadows писал(а):mend0za, и тебе привет ;).

Странно, вот камрад cympak говорит, что ты перл вместо шела рекомендовал. А ты вона его в языки общего назначеняя запихал. В чём правда?

З.Ы. Одна из багов была с sed-ом. Пробел в регеэкспе :(. Всё таки отсутствие нормального клипборда решает... Все эти перечепятки убивают...
Вырвал скорее всего из контекста, или неправильно понял.
Такс господа, я ни где не сказал что мендоза его рекомендовал вместо шелла, я просто привел цитату которая описывала перл в сравнении с шеллом.

Поскольку последних года 4 а то и 5 пишу в основном на перле, то и скрипты соответственно на перле :)
...а на каком основании ограниченность некоторых делать законом для всех?

master_of_shadows
Маньяк
Сообщения: 199
Зарегистрирован: 06 мар 2004, 19:23
Откуда: Минск
Контактная информация:

Сообщение master_of_shadows »

booxter, хотел посмотреть на screen. Гляну. Хотя канешна то же изврат... Меня куча gnome-terminal устраивает вполне, к тому же и удобно.

cympak, да, весело получилось :).
[Ubuntu 8.10] @ home PC & MSI Wind

...take a look at the sky, just before you die...

olecom
Интересующийся
Сообщения: 65
Зарегистрирован: 03 апр 2008, 18:54
Откуда: Родом: Чернавчицы, Брест, Бульбастан; Сейчас: Оломоуц, Чехия.

Re: Отладка скриптов (bash и ко)

Сообщение olecom »

master_of_shadows писал(а):Уважаемый ALL.

Всё больше и больше прусь от мощИ скриптов в общем и баша в частности (не взирая на корявенький синтаксис).
Для более полного понимания программирования на борн-подобном шеле, кодерам-программерам я рекомендую
http://web.archive.org/web/200707041111 ... ix/Sh.html
Но есть одна проблемма: отладка этих самых скриптов. Я отчётливо понимаю что отладчик этого счастья в принципе не возможен. Однако хотелось бы услышать/увидеть какие нибудь трики/типы и т.д. по упрощению жизни. А то я уже два раза дебажил скрипт по часу, а в нём была просто опечатка: лишний пробел, и вместо '|' вставил '>'.

Кто что может па раiць?
Грамотный дебаг начитается в голове, естественно. Продолжается он в качественнй подсведке синтаксиса в редакторе (основном инстументе программера). И только заканчивается он тупым просмотром трэйсов и логов часами или днями.

До сих пор я не видел потенциал больший чем шел. `eval` (или `echo $script>$script_file` && `source $script_file`) механизм как у LISP и возможность чтения скрипта из пайпа. Так же не довелось мне в XXI веке увидить хоть жалкое подобие подсветки и итеративно-интерактивного режима редактирования кода, и не только шела; палко-копательный edit+run рулит.

Собственно дебаг скриптов -- это понимание того что они делают в те или иные моменты времени с тем или иным вводом/выводом. `set -x` иногда помогает конечно, но чаще всего это просто шумоподобный сигнал, который проще не изучать и посмотреть в код и увидить таки свою тупость там.

В нетривиальном скрипте, например который генерит другой скрипт, который отсылается по пайпу своей же демонической копии, которая вообще без stdout && stderr, нужна продуманная инфраструктура отображений состояния. Написав несколько нетривиальных скриптов я бы хотел такую структуру сделать. Заинтересованные коллеги по разуму приглашаются к обмену мнениями.
--

Код: Выделить всё

sed 'sed && sh + olecom = love' << ''
-o--=O`C
 #oo'L O
<___=E M

Ответить