Как писать скрипты?
Модератор: Модераторы разделов
-
expll
- Сообщения: 101
- ОС: Kubuntu
Как писать скрипты?
по сабжу.
Нужно написать ПОКА пару простеньких скриптов (аля скопировать отсюда, поместить туда, удалить если уже есть), можно кого-то попросить, но хотелось бы самому разобраться. Куда ковырять? Как я понял скрипты в линуксе на перле пишутся? Т.е. perl что-ли учить нужно?
Спасибо!
Нужно написать ПОКА пару простеньких скриптов (аля скопировать отсюда, поместить туда, удалить если уже есть), можно кого-то попросить, но хотелось бы самому разобраться. Куда ковырять? Как я понял скрипты в линуксе на перле пишутся? Т.е. perl что-ли учить нужно?
Спасибо!
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как писать скрипты?
Скрипты в Linux пишутся на shell. В большинстве дистрибутивов умолчательный shell -- это bash. Потому если хотите именно научиться писать скрипты, рекомендую Advanced Bash Scripting Guide (сейчас найду ссылку).
Добавлено:
Вот, прошу http://gazette.linux.ru.net/rus/articles/abs-guide/
Добавлено:
Вот, прошу http://gazette.linux.ru.net/rus/articles/abs-guide/
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
DenF
- Сообщения: 30
- ОС: Debian Wheezy
Re: Как писать скрипты?
канечно учи Perl, благо он не особо сложный (и как покажется потом, возможностей не особо у него и много). Для слишком часто используемых операций иногда удобнее писать на С.
Литературу советую: ПРОГРАММИРОВАНИЕ НА shell (UNIX). Автор А. Соловьев. год не помню.. хорошая книга
Литературу советую: ПРОГРАММИРОВАНИЕ НА shell (UNIX). Автор А. Соловьев. год не помню.. хорошая книга
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как писать скрипты?
Не нужно здесь раздавать вредные советы. Большинство частоиспользуемых операций можно автоматизировать с помощью shell + coreutils + findutils + grep + sed + awk. Перл/питон очень редко когда окажутся востребованы, а уж Си -- тем более: при нынешних мощностях "домашних" машин большинство задач оптимизировать по скорости совершенно незачем, не окупится.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
Illuthion
- Сообщения: 249
- Статус: Человек[Возможно]
- ОС: Debian experemental
Re: Как писать скрипты?
Если уж совсем просты скрипты нужны то вот тут почитай
http://www.oszone.net/3718/
http://www.oszone.net/3718/
[Hate Mandriva;Adobe_Sofware;KDE4;1Panel_FM;Nero]
-
Nymin
- Сообщения: 1095
- Статус: -
- ОС: GNU/Linux
Re: Как писать скрипты?
да, присоединяюсь к рекомендации Advanced Bash Scripting Guide, отличное руководство
-
DenF
- Сообщения: 30
- ОС: Debian Wheezy
-
Goodvin
- Ведущий рубрики
- Сообщения: 4333
- Статус: ⚝⚠⚒⚑⚖☭☞☣☤&
Re: Как писать скрипты?
Уважаемый, купите себе учебник русского яызка.
Сообщаю Вам по секрету, что большинству людей неохота ломать глаза о такие потоки сознания без знаков препинания и с опечатками.
Поэтому не удивляйтесь, что большинство Ваших безграмотных сообщений будут проигнорированы форумчанами.
Есть над чем подумать.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как писать скрипты?
С тем, что перл -- лёгкий в изучении язык (особенно -- в сравнении с упомянутой мною выше связкой), я категорически несогласен (достаточно посмотреть для сравнения на тот же питон), но мой комментарий о "вредных советах" относился не к этому. Вредным советом я счёл рекомендацию писать решения для повседневных задач на компилируемом языке (Си). О признаках неэффективности такого подхода можно говорить долго, но достаточно, думаю, упомянуть два:
1. На это я уже намекал, говоря о мощности современных машин: вместо того, чтобы делать любую работу, заставьте машину делать эту работу. Компилируемые (в машкод) языки очень значительно добавляют работы человеку даже по сравнению с языками интерпретируемыми (напрямую, или через байт-код) -- а даже последние тоже весьма и весьма добавляют ему работы по сравнению с shell. Надеюсь, это утверждение не требует доказательства?..
2. Переносимость. Шелл-скрипт будет работать везде, где есть упомянутый мною набор базовых системных утилит -- т.е. как минимум на любой Linux-машине. Кроме того, довольно просто написать скрипт без расширенных возможностей bash и GNU, на POSIX-совместимом shell-е -- тогда он будет работать вообще на любой современной unix-системе. И всё это без перекомпиляции.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
fornike
- Сообщения: 246
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
-
TeMy4uH
- Сообщения: 150
Re: Как писать скрипты?
Какой там С? Вы на поставленную задачу посмотрите. Конечно тут больше всего подходит shell. И ABS-Guide рулит- сам как-то занимался по этому мануалу...
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как писать скрипты?
Вот ты эту мантру повторяешь всё время, а кое-что забываешь: диски пока ещё не настолько далеко ушли от IBM PC XT, а потому функционально схожие поделия на sh, python и С будут выполняться совершенно разное время. Вопрос в масштабе задачи.t.t писал(а): ↑29.09.2008 19:42На это я уже намекал, говоря о мощности современных машин: вместо того, чтобы делать любую работу, заставьте машину делать эту работу. Компилируемые (в машкод) языки очень значительно добавляют работы человеку даже по сравнению с языками интерпретируемыми (напрямую, или через байт-код) -- а даже последние тоже весьма и весьма добавляют ему работы по сравнению с shell. Надеюсь, это утверждение не требует доказательства?..
Я в своё время писал на bash'е нечто, функционально похожее на eclean-dists (в Gentoo - удаление неактуальных исходников). Так вот, после всех оптимизаций, до которых я додумался, всё равно полуилось нечто невообразимо медленное в сравнении с тем самым eclean-dist.
P.S.: Кстати, я не удивлюсь, если после этой дискуссии о написании скриптов на perl'е автор топика уже испугался и побежал качать Windows/Hackintosh...
-
expll
- Сообщения: 101
- ОС: Kubuntu
Re: Как писать скрипты?
Спасибо всем за ответы, уже курю Advanced Bash Scripting Guide.
P.S.: Кстати, я не удивлюсь, если после этой дискуссии о написании скриптов на perl'е автор топика уже испугался и побежал качать Windows/Hackintosh...
Не, не побегу.
P.S.: Кстати, я не удивлюсь, если после этой дискуссии о написании скриптов на perl'е автор топика уже испугался и побежал качать Windows/Hackintosh...
Не, не побегу.
-
diesel
- Бывший модератор
- Сообщения: 5989
- ОС: OS X, openSuSE, ROSA, Debian
Re: Как писать скрипты?
t.t писал(а): ↑29.09.2008 19:422. Переносимость. Шелл-скрипт будет работать везде, где есть упомянутый мною набор базовых системных утилит -- т.е. как минимум на любой Linux-машине. Кроме того, довольно просто написать скрипт без расширенных возможностей bash и GNU, на POSIX-совместимом shell-е -- тогда он будет работать вообще на любой современной unix-системе.
если писать без расширений bash и GNU на POSIX-совместимом шелле, то очень часто легче таки взять perl - оно уж точно будет работать везде одинаково, по крайней мере в *nixах, по крайней мере если сильно не выпендриваться.
если вспоминать животрепетущие примеры, бувально вчера столкнулся: awk 'BEGIN{RS="\n\n"; FS="\n";} {print $1,$2,$3,$4}' filename по-разному работало на unix'истом Mac'е, и на linux'овой машине(не помню какой там awk был на linux'е), на Mac'е оно то как раз работает весьма неожиданным образом :-) с subsitute-функциями в разныех версиях awk'а тоже очень по-разному. или тот же sed, который _мне_ очень часто удобно использовать в виде sed -i 's!!!', на достаточно новых linux-машинах работает, на старых, - нет. И так далее и тому подобное.
Если будешь на С писать те же вещи - то легче и лучше может и не получится(хотя зависит от задач, как минимум одну задача когда _надо_ скомпилировать могу сказать - у тебя нет sudo, а хочется чтобы то что ты запускаешь выполнялось от другого юзера), а вот perl/python/...и далее по списку по сравнению с shell'ом могут быть и легче и лучше, в том числе когда хочется запускать результат на очень разных машинах.
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как писать скрипты?
Кстати, вспомнилось: писал скрипт инсталляции маленькой программки. Сначала на bash, потом всё-таки сделал на python. На bash получилось чуть-чуть короче, а на python - работало успешно и в Windows, и в Linux, и в OSX (сам не видел, но говорили, что так).
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Как писать скрипты?
вставлю свои пять копеек :-)
по теме - я полностью согласен с господином t.t относительно использования bash в повседневной жизни.
относительно perl/python/... - есть еще немаловажный фактор - популярность языка.
при работе с unix-ами это очень даже не на последнем месте. ваши скрипты часто написаны не только для вас лично,
но и для коллег/последователей и т.п.
каждый раз, когда хочется блеснуть глубоким знанием C++/haskell/f77/kobol - подумайте о том, как ваш код будут
разгребать, когда в нем найдутся ошибки.
я лично чуть голову не сломал об один скрипт на lisp-е.
программист из меня довольно посредственный, в C/pascal/basic разберусь, но lisp меня сломил.
понятно, что человек писал для себя и как ему было удобней, но все же....
а насчет того - что удобней - perl, python и т.п. - имхо, если уже отошли от шелл-скриптов к интерпретаторам -
тут уже или от задачи нужно смотреть, или по собственным возможностям :)
я вот похоже первый отписавшийся, кто для таких скриптов использует php
(чувствую сейчас камнями закидают :) )
- и ничего очень даже быстро и удобно. ну так это по тому, что я его знаю ;-)
по теме - я полностью согласен с господином t.t относительно использования bash в повседневной жизни.
относительно perl/python/... - есть еще немаловажный фактор - популярность языка.
при работе с unix-ами это очень даже не на последнем месте. ваши скрипты часто написаны не только для вас лично,
но и для коллег/последователей и т.п.
каждый раз, когда хочется блеснуть глубоким знанием C++/haskell/f77/kobol - подумайте о том, как ваш код будут
разгребать, когда в нем найдутся ошибки.
я лично чуть голову не сломал об один скрипт на lisp-е.
программист из меня довольно посредственный, в C/pascal/basic разберусь, но lisp меня сломил.
понятно, что человек писал для себя и как ему было удобней, но все же....
а насчет того - что удобней - perl, python и т.п. - имхо, если уже отошли от шелл-скриптов к интерпретаторам -
тут уже или от задачи нужно смотреть, или по собственным возможностям :)
я вот похоже первый отписавшийся, кто для таких скриптов использует php
(чувствую сейчас камнями закидают :) )
- и ничего очень даже быстро и удобно. ну так это по тому, что я его знаю ;-)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Как писать скрипты?
популярность среди людей ;-)
(или мне сейчас ответят - не часто встретишь администратора линукса без знания perl/python)? :-)
кстати - насчет нечасто:
про настольные компьютеры речь не шла.
а для большинства традиционных сервисов - dns, samba, ldap, ftp, nfs,....
perl/python обсалютно не требуется.
по крайней мере, если perl еще проскакивает в некоторых зависимостях, то питон - уже ближе к экзотике. ;-)
(или мне сейчас ответят - не часто встретишь администратора линукса без знания perl/python)? :-)
кстати - насчет нечасто:
про настольные компьютеры речь не шла.
а для большинства традиционных сервисов - dns, samba, ldap, ftp, nfs,....
perl/python обсалютно не требуется.
по крайней мере, если perl еще проскакивает в некоторых зависимостях, то питон - уже ближе к экзотике. ;-)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
t.t
- Бывший модератор
- Сообщения: 7390
- Статус: думающий о вечном
- ОС: Debian, LMDE
Re: Как писать скрипты?
По perl/python -- согласен в таком смысле: первое, на что стоит посмотреть после bash. Какой из них выбирать -- зависит больше от личных предпочтений, т.к. они достаточно разные, а по функционалу оба очень мощные. Но для новичка питон однозначно проще, на порядок.
¡иɯʎdʞ ин ʞɐʞ 'ɐнɔɐdʞǝdu qнεиж
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как писать скрипты?
JIeHb
Т.е. не популярность, а редактируемость? Python в этом смысле вообще замечателен. Его синтаксис понятен практически всем, кто знаком с bash или C.
Т.е. не популярность, а редактируемость? Python в этом смысле вообще замечателен. Его синтаксис понятен практически всем, кто знаком с bash или C.
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Как писать скрипты?
Но для новичка питон однозначно проще, на порядок.
обсалютно согласен (не в обиду перлу) - честным образом пытался заставить себя его осилить - прочитал ламу, но
не смог. дело конечно во мне, а не в перле, но, например с php у меня таких проблем не было.
в общем - дело вкуса.
кому покрепче, а кому с сахаром :-)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Как писать скрипты?
Т.е. не популярность, а редактируемость? Python в этом смысле вообще замечателен. Его синтаксис понятен практически всем, кто знаком с bash или C.
ну в общем да, видимо я плохо выразился.
я, честно говоря, с питоном мало общался, но, что такое "понятный синтаксис" вполне представляю.
по крайней мере для меня - это один из решающих факторов (понятный синтаксис) по причине большого количества коллег на работе.
выучить всех разом любимый язык конечно нельзя, но воспользоваться чем-либо более понятным - можно.
вообще я подумываю посерьезней учить питон - слишком много лестного о нем слышал.
стоит? :-)
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.
-
ddc
- Бывший модератор
- Сообщения: 3535
- Статус: OpenBSD-compatible
- ОС: OpenBSD -current
Re: Как писать скрипты?
Я юрист по образованию (т.е. математика у меня сугубо школьная), начальник юридического отдела страховой компании по должности. Времени нет. Python выучил в процессе написания необходимой мне программы, причём единожды затраченное на освоение языка и написание программы время окупается еженедельно, причём не только у меня, но и у подчинённых.
Стоит?
-
Ленивая Бестолочь
- Бывший модератор
- Сообщения: 2760
- ОС: Debian; gentoo
Re: Как писать скрипты?
ох.
из этого сообщения я о вас узнал намного больше, чем о питоне :-)
я ожидал чего-нибудь на подобии обсуждения достоинств/недостатков языка.
могу привести пример, как бы я отзывался о своем ненаглядном пхп:
плюсы:
-99% синтаксис пхп - это С++, соответственно тем, кто знает C/C++ учить его не нужно совершенно.
-очень быстрый интерпретатор. у него действительно очень быстрый интерпретатор.
-большое кол-во модулей для работы с разными структурами - *sql, ldap,.... ну правда под это думаю любой язык подойдет.
-огромное-огромное количество встроенных функций для работы с текстом. здесь не нужно изобретать велосипед - все уже написано до нас.
-очень урощен синтаксис язык по сравнению с С. язык безтиповый, очень многое прощает. всякие приятности типа массивы = хеши и т.п.
минусы:
-пхп изначально для веб, и, несмотря на всякие php-cli интеграция в шелл у него не особоно - некоторые элементарные взаимодействия со
скриптами приходиться делать самому.
-пхп опирается на свои встроенные функции, а не на рег.выражения, как перл, по этому он кончается там, где кончаются возможности его функций.
рег.выражения поддерживаются, но не так хорошо, как в перле и от них он сильно тормозит.
-неинформативные сообщения об ошибках. конечно все, кто на нем пишет вполне обходятся, но в сравнении с другими компиляторами/интерпретаторами
могло быть и лучше.
-безтиповость языка иногда(очень редко) выходит боком. приходится испольлзовать специальные намеки для указания - как именно понимать переменную.
имхо - это костыль примененный из-за недостатков бестиповой системы.
из этого сообщения я о вас узнал намного больше, чем о питоне :-)
я ожидал чего-нибудь на подобии обсуждения достоинств/недостатков языка.
могу привести пример, как бы я отзывался о своем ненаглядном пхп:
плюсы:
-99% синтаксис пхп - это С++, соответственно тем, кто знает C/C++ учить его не нужно совершенно.
-очень быстрый интерпретатор. у него действительно очень быстрый интерпретатор.
-большое кол-во модулей для работы с разными структурами - *sql, ldap,.... ну правда под это думаю любой язык подойдет.
-огромное-огромное количество встроенных функций для работы с текстом. здесь не нужно изобретать велосипед - все уже написано до нас.
-очень урощен синтаксис язык по сравнению с С. язык безтиповый, очень многое прощает. всякие приятности типа массивы = хеши и т.п.
минусы:
-пхп изначально для веб, и, несмотря на всякие php-cli интеграция в шелл у него не особоно - некоторые элементарные взаимодействия со
скриптами приходиться делать самому.
-пхп опирается на свои встроенные функции, а не на рег.выражения, как перл, по этому он кончается там, где кончаются возможности его функций.
рег.выражения поддерживаются, но не так хорошо, как в перле и от них он сильно тормозит.
-неинформативные сообщения об ошибках. конечно все, кто на нем пишет вполне обходятся, но в сравнении с другими компиляторами/интерпретаторами
могло быть и лучше.
-безтиповость языка иногда(очень редко) выходит боком. приходится испольлзовать специальные намеки для указания - как именно понимать переменную.
имхо - это костыль примененный из-за недостатков бестиповой системы.
Солнце садилось в море, а люди с неоконченным высшим образованием выбегали оттуда, думая, что море закипит.