Страница 1 из 2

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

Добавлено: 10 янв 2008, 16:04
master_of_shadows
Уважаемый ALL.

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

Кто что может па раiць?

Добавлено: 10 янв 2008, 17:34
Llama
#!/bin/bash -x

И не стоит пытаться делать что-то сложное на shell, совершенно своеобразная обработка данныех, экранирование и т.п. радости сильно улосжняют жизнь. Лучше писать уж на perl каком.

Добавлено: 10 янв 2008, 19:38
master_of_shadows
Llama, ага, спасибо. Перл изучать не хочу. Не нравится мне он.

Другие варианты zsh, ksh? Может руби :)?

Добавлено: 10 янв 2008, 21:03
vics

Добавлено: 11 янв 2008, 02:25
grub
master_of_shadows писал(а):Llama, ага, спасибо. Перл изучать не хочу. Не нравится мне он.

Другие варианты zsh, ksh? Может руби :)?
Не уворачивайся, таки придется хоть в базовом объеме, а освоить перл :)

Добавлено: 11 янв 2008, 10:39
X-Stranger
Что вы человека мучаете? Пусть Питон учит, раз Перл не нравится :)

Добавлено: 11 янв 2008, 13:18
cympak
В питоне много буков. Как сказал мендоза (может до него тоже кто говорил, но я слышал именно от него) - perl это шелл на стероидах. И чем извращаться со всякими zsh ksh jsh - перл значительно лучше: многие вещи можно сделать на много проще, сделать можно на много больше.

Добавлено: 11 янв 2008, 14:10
master_of_shadows
<-- не фанат питона и перла.

Ну т.е. я бы не сказал что я их не люблю, но шо та они меня не прут, на первый взгляд :).

В сети частенько пробегают скрипты на перле которые смахивают на cat бинарщины. Не хочется с такими скриптами возится.

Но у перла есть дебагер - это плюс не сомненно. Надо будет глянуть.

Кстати, а кто на чём скрипты ваяет? На всём подряд, или есть любимый тул?

Добавлено: 11 янв 2008, 14:35
mend0za
Скрипты пишу:

- Bourne Shell - для автоматизации, связанной с простым увязыванием различных утилит в единое целое. Bourne Shell - базовый диалект для bash, ksh, ash/dash, zsh, все виды sh. Поддерживается и работает одинаково, везде и на всём.
Если надо из него обработать текст - обычно дёргаю sed.

- AWK (nawk/gawk) - сложная обработка текста. Простой синтаксис ( man nawk в openbsd - 6 страниц), очень быстрый. Подходит для чего угодно, вплоть до кодогенерации.

Perl/Python/Ruby считаю не средствами автоматизации, а языками общего назначения. И пользуюсь ими только в этом качестве, для крупных вещей.

master_of_shadows, привет :)

Добавлено: 11 янв 2008, 14:51
vics
Tcl, однако.

Добавлено: 11 янв 2008, 18:08
master_of_shadows
mend0za, и тебе привет ;).

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

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

Добавлено: 11 янв 2008, 18:25
Llama
Использую shell для ваяния поделок в 1 - 10 строчек.
Для всего остального рекомендую perl. По сравнению с shell, вклчая bash, perl имеет следующие преимущества:
1) Нормальная, подчиняющаяся единым правилам, работа со строками и экранированием символов.
2) Крайне устойчивый и давно стабилизированый диалект языка, что позволяет отвязаться от платформеных и версионных особенностей различных платформ.
3) Более удобная работа с массивами.
4) Распространенность интерпретатора позволяет использовать достаточно сложные конструкции не опасаясь проблем переносимости.

Основной недостаток: некоторая избыточность становится заметна в маленьких лбо крайне простых скриптах.
Тоже недостаток: пока не попался в руки аналог shar. Впрочем, я особо и не искал.

Добавлено: 12 янв 2008, 00:13
mend0za
master_of_shadows писал(а):mend0za, и тебе привет ;).

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

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

Добавлено: 12 янв 2008, 02:52
grub
master_of_shadows писал(а):Всё таки отсутствие нормального клипборда решает... Все эти перечепятки убивают...
ЕМНИП, это стандартный иксовый механизм...
Скопировать = выделить + шифт
Вставить = средняя кнопка мыши


Я сам долгое время мучался, пока cympak не показал. :)

Добавлено: 12 янв 2008, 02:54
grub
cympak писал(а):perl это шелл на стероидах
Это Реймонд кого-то цитировал в своей книженции... Возможно, что и самого Ларри.