Скрипты: введение для начинающих

Командная строка и утилиты командной строки во многих задачах оказываются значительно более удобным средством, чем самый изощренный графический интерфейс. Повторяющиеся действия, особенно если они осложнены минимальной логикой, оказываются простыми с точки зрения средств командной строки и весьма сложными и нередко требующими специфической поддержки с точки зрения GUI.

Для эффективного использования командной строки необходим т.н. «язык-клей», позволяющий связывать («склеивать») последовательности команд операционной системы и вызовов утилит в единую программу. Такой «язык-клей» часто называют скриптовым языком, а написанные на нем программы — скриптами. На скриптовые языки часто также возлагают простые задачи по преобразованию данных из выходного формата одной программы во входной формат другой.

В каждой операционной системе есть свой основной скриптовой язык, обычно называемый языком командного интерпретатора. Удобство и выразительная сила таких языков может изменяться от системы к системе в очень широких пределах. Убогий и эклектичный командный язык интерпретатора cmd характерен для платформы win32; мощный, но чрезвычайно запутанный (и тоже эклектичный) язык интерпретатора bash характерен для unix-подобных систем. В обоих случаях стандартный скриптовой язык не обеспечивает удобной среды для выполнения повседневных задач средней сложности.

В последнее время наблюдается тенденция перехода к использованию для написания скриптов специфических скриптовых языков, сочетающих удобный доступ к ресурсам операционной системы с продуманным синтаксисом и удобными встроенными структурами данных. Одним из первых таких языков был интерпретируемый язык Perl.

Следует отметить, что выше говорилось только о скриптах, автоматизирующих те рутинные операции, которые обычно выполняются пользователем в среде командного интерпретатора операционной системы. В этом случае скрипт фактически выполняет последовательность файловых операций, которые при обычном подходе пользователь мог бы вводить вручную с консоли. Тем не менее, скрипты и скриптовые языки используются не только в этом контексте.

Часто нам приходится иметь дело с программой, предоставляющей некоторый набор возможностей по оперированию интересующими нас объектами. Например, графический редактор предоставляет пользователю набор операций, которые можно производить над изображениями. В этом случае программу можно назвать исполнителем, а набор выполняемых исполнителем операций — интерфейсом исполнителя.

Если с точки зрения пользователя интерфейс исполнителя представлен с помощью GUI, то для выполнения каждой операции требуются некоторые ручные манипуляции и автоматизировать повторяющиеся рутинные операции практически невозможно. С другой стороны, программа может предоставлять свой интерфейс таким образом, что к нему можно получить доступ снаружи — из командного интерпретатора системы или непосредственно из скриптового языка. В этом случае автоматизация рутинных операций не является проблемой.

В простейшем случае интерфейс исполнителя может быть представлен в виде набора команд, выполняемых утилитой командной строки. В этом случае мы получаем возможность выполнять произвольные последовательности операций (команд исполнителя) как из командного интерпретатора операционной системы, так и из любого скриптового языка. Реже команды исполнителя делаются доступными непосредственно из некоторого скриптового языка, выбранного разработчиками программы. В этом случае скрипты часто оказываются более эффективными, но пользователь бывает вынужден использовать выбранный разработчиками скриптовой язык.

page_revision: 3, last_edited: 1197272372|%e %b %Y, %H:%M %Z (%O ago)
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License