Сценарии командной оболочки. Linux, OS X и Unix. 2-е издание - страница 8
Упрощение способа вызова сценариев
Для запуска сценариев не обязательно использовать команду sh. Если добавить еще одну строку в сценарий intro и изменить его разрешения в файловой системе, его можно будет запускать непосредственно, без команды sh, как любые другие команды. Откройте сценарий intro в текстовом редакторе и измените его, как показано ниже:
>
>··echo "Hello World"
>··echo $(which neqn)
>··cat $(which neqn)
Мы добавили единственную строку в самое начало файла, ссылающуюся на путь в файловой системе /bin/bash
После добавления строки нам еще необходимо установить права доступа к файлу, разрешающие выполнять его как обычную программу. Для этого в окне терминала выполните команды, показанные в листинге 0.6.
Листинг 0.6. Изменение прав доступа к файлу сценария intro, разрешающих его выполнение
>
>
>··Hello World
>··/usr/bin/neqn
>··#!/bin/sh
>··# Присутствие этого сценария не должно расцениваться как наличие поддержки
>··# GNU eqn и groff −Tascii|-Tlatin1 |-Tutf8 |-Tcp1047
>··GROFF_RUNTIME="${GROFF_BIN_PATH=/usr/bin}:"
>··PATH="$GROFF_RUNTIME$PATH"
>··export PATH
>··exec eqn −Tascii ${1+"$@"}
>··# eof
>··$
Для изменения прав доступа мы использовали команду chmod
Мы привели лишь простой пример, чтобы показать, как запускать сценарии командной оболочки и как использовать сценарии для запуска других сценариев. Во многих сценариях в этой книге мы задействуем именно такой метод, и вы еще не раз увидите строки shebang в будущем.
Почему именно сценарии командной оболочки?
Кого-то из вас может беспокоить вопрос: почему для создания сценариев предпочтительнее использовать язык командной оболочки bash вместо более новых и мощных языков, таких как Ruby и Go. Да, эти языки гарантируют переносимость между разными типами систем, но они не устанавливаются по умолчанию. Причина проста: на любой машине с операционной системой Unix имеется командная оболочка, и на подавляющем большинстве из них используется оболочка bash. Как отмечалось в начале главы, компания Microsoft недавно выпустила для Windows 10 ту же самую командную оболочку bash, которая имеется во всех основных дистрибутивах Linux и OS X. То есть теперь сценарии командной оболочки стали еще более переносимыми с минимумом усилий с вашей стороны. Кроме того, сценарии на языке командной оболочки позволяют быстрее и проще решать задачи обслуживания и администрирования системы, чем сценарии на других языках. Оболочка bash все еще далека от идеала, но в этой книге вы узнаете, как смягчить некоторые ее недостатки.
В листинге 0.7 приводится пример маленького, удобного и полностью переносимого сценария командной оболочки (фактически, это однострочная команда на bash!). Сценарий определяет общее количество страниц во всех документах OpenOffice, находящихся в указанной папке, и может пригодиться писателям.
Листинг 0.7. Сценарий для определения общего количества страниц во всех документах OpenOffice в указанной папке
>#!/bin/bash