[Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Модератор: Модераторы разделов

DXP
Сообщения: 22
ОС: Ubuntu 10.04

[Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение DXP »

В последнее время я решил перейти от использования bash к python для написания шелл скриптов.
Я работаю программистом, использую git и у меня есть много рутинных операций, которые хотелось бы автоматизировать.
Сейчас я использую bash только для простых скриптов (где нет условных переходов и циклов)
Кода на python выходит немного больше, но он лучше читается. Соответственно поддерживать и расширять код становится проще.
Кроме того есть много полезных стандартных модулей. Начал писать свои для повторного использования.

Есть какие нибудь хорошие cтатьи/книжки про то как писать хорошие shell скрипты? Что то вроде принципов объектно-ориентированнного дизайна, только применимо к shell скриптам.
У меня сейчас в основном проблемы с парсингом вывода других команд.
Оно превращается в малопонятную кашу из условных операторов и работой со строками
Наверное нужно будет освоить regex-ы

Полезные ссылки:
Теория
Tips & Tricks
shutil — High-level file operations
glob — Unix style pathname pattern expansion
Ubuntu 10.04 amd64 C2DQ6600
Спасибо сказали:
Аватара пользователя
SLEDopit
Модератор
Сообщения: 4824
Статус: фанат консоли (=
ОС: GNU/Debian, RHEL

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение SLEDopit »

DXP писал(а):
08.12.2011 16:11
Наверное нужно будет освоить regex-ы
При парсинге чего бы то ни было, это основное, что нужно. Там не так всё уж сложно и страшно.
На эту тему можно нужно почитать: google://фриддл регулярные выражения.
UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity. © Dennis Ritchie
The more you believe you don't do mistakes, the more bugs are in your code.
Спасибо сказали:
DXP
Сообщения: 22
ОС: Ubuntu 10.04

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение DXP »

Книгу скачал, начал изучать.
Ubuntu 10.04 amd64 C2DQ6600
Спасибо сказали:
Аватара пользователя
t.t
Бывший модератор
Сообщения: 7390
Статус: думающий о вечном
ОС: Debian, LMDE

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение t.t »

Python это не shell.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
Спасибо сказали:
Аватара пользователя
nickm
Сообщения: 203
ОС: RFRemix

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение nickm »

Спасибо сказали:
DXP
Сообщения: 22
ОС: Ubuntu 10.04

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение DXP »

В Python есть мощные коллекции и итераторы, map/reduse и прочее ФП.
Через возможности обработки списков я сейчас пишу скрипт для редеплоя maven артифактов на сервере. Если нарушить порядок деплоя, зависимые артефакты будут использовать старые версии других артефактов.
Сомневаюсь, что это можно так же красиво реализовать на баше.
Ubuntu 10.04 amd64 C2DQ6600
Спасибо сказали:
watashiwa_daredeska
Бывший модератор
Сообщения: 4038
Статус: Искусственный интеллект (pre-alpha)
ОС: Debian GNU/Linux

Re: [Advanced shell scripting] Как научиться писать хорошие shell скрипты?

Сообщение watashiwa_daredeska »

DXP писал(а):
14.12.2011 14:31
Сомневаюсь, что это можно так же красиво реализовать на баше.
Для поддержания «порядка деплоя» и вообще порядка выполнения чего-либо, есть make.
Списки и итераторы — сильное место shell, ибо любой текстовый поток — суть итератор по строкам, а как интерпретировать строки — ваше дело. И весь набор стандартных утилит на это расчитан.

DXP писал(а):
14.12.2011 14:31
Сомневаюсь, что это можно так же красиво реализовать на баше.
Хм… Так всё-таки, «научиться писать хорошие shell-скрипты» или «научиться писать хорошие python-скрипты»?
Спасибо сказали: