Шелл для кодера Андрей Семенюченко Спецвыпуск: Хакер, номер #051, стр. 051-082-2 Обычно все сценарии начинаются с одной из следующих строк или набора строк: #!/bin/sh #!/bin/bash #!/usr/bin/perl #!/usr/bin/tcl #!/bin/sed -f #!/usr/awk –f Ты, наверное, уже заметил, что каждая строка начинается одинаково, с символов «#!». Эти строки объясняют системе, что запущенный файл, - это не что иное, как сценарий, и его следует обработать с помощью указанного после символов "#!" интерпретатора. Запустить сценарий можно двумя способами. Первый заключается в предоставлении права на исполнение файла для владельца файла, группы или всех пользователей в системе. Полный доступ к файлу на выполнение, запись и чтение для владельца выглядит так: сhmod 700 my_script_name.sh или chmod u+rwx my_script_name.sh Доступ для всех остальных, я думаю, ты сможешь сделать сам. Второй способ заключается в указании интерпретатора перед именем сценария: sh my_script_name bash my_script_name От теории к практике Я думаю, наступил момент рассмотреть какой-нибудь пример практического использования скрипта, из которого сразу все станет ясно. Но перед этим хочу обратить твое внимание на то, что некоторую полезную роль в написании кода играют редакторы. Современные редакторы имеют уйму разных функций от подсветки кода до вставки в текст некоторых несложных конструкций. Все это на любителя. Ты можешь использовать vi или emacs, а мне хватает встроенного в Midnight comander редактора с подсветкой синтаксиса. Ну а выбор, как всегда, за тобой. Определись, что тебе больше нравится, и забудь. Чтобы далеко за примерами не ходить, я решил залогиниться на свой ALT Master 2.2 и взять первый попавшийся на глаза скрипт запуска одного из демонов. Такие скрипты, как известно, находятся в /etc/rc.d/init.d/. Первым в каталоге init.d оказался файл Anacron – сценарий запуска для одного очень популярного планировщика задач, похожего на всем известный демон cron. Anacron также может периодически запускать команды в назначенное время, и в отличие от cron, нет необходимости постоянной работы системы (но это уже совсем другая история). Разберем файл построчно. Как мы видим, в начале файла используется до боли знакомая конструкция, начинающаяся с «#!». Ты уже знаешь, на что она указывает системе. Далее следуют комментарии, которые предваряются символом «#». А вот тут уже становится интересно: появилась какая-то строка, да еще с точкой в начале. Вот она: . /etc/init.d/functions На самом деле ничего странного здесь нет. Символ "." является эквивалентом команды source. Внутри сценария команда source other_file_name подключает файл other_file_name. Она очень напоминает директиву препроцессора языка C/C++ - "#include". Коротко пробегись по включенному файлу и получи представление о том, что же представляет собой скрипт functions. На самом деле все становится предельно ясно с комментариями к файлу. Этот сценарий содержит функции, наиболее часто используемые скриптами автозапуска из /etc/init.d. Дальше в файле как раз встречаются функции, которые очень часто можно найти в скриптах. Но вернемся к нашему сценарию автозапуска anacron. |