BASH Programming - Введение

       

Скрипты командного процессора: Файлы .BAT на стероидах


Если вы использовали .BAT-файлы для создания сокращений для длинных командных строк (я сам так делал), то это может быть достигнуто вставкой соответствующих алиасов (смотрите вышеприведенный пример) в файлы profile или .bash_profile. Но если ваши .BAT-файлы были более сложными, то вы полюбите язык, предоставляемый командным процессором: он мощен, как старый QBasic, если не больше. Он имеет переменные, управляющие структуры, подобные while, for, case, if... then... else, и много других возможностей: он может быть хорошей альтернативой ``настоящим'' языкам программирования.

Для написания скрипта---эквивалента .BAT-файла в DOS все, что надо сделать---написать стандартный ASCII-файл, содержащий инструкции, сохранить его и затем сделать его исполнимым с помощью команды chmod +x <scriptfile>. Для выполнения скрипта наберите его имя.

Предупреждение. Системный редактор называется vi, и по моему мнению большинство новых пользователей найдет его трудным в использовании. Я не буду объяснять, как его использовать; пожалуйста посмотрите эту информацию в книге Matt Welsh или найдите учебное руководство в сети. Здесь достаточно сказать, что:

  • для вставки некоторого текста нажмите i, и затем вводите текст;
  • для удаления символов наберите <ESC>, а затем x;
  • для выхода из vi без сохранения изменений наберите <ESC>, а затем :q!

  • для сохранения и выхода наберите <ESC>, а затем :wq.
  • Примечание переводчика: На самом деле vi-- мощный редактор. Для получения встроенного учебника наберите <ESC>, а затем :help tutor, для получения справки по какому либо разделу наберите <ESC>, а затем :help имя_раздела или команды. Этот перевод был сделан используя вариант этого редактора под названием Vim, дополнительную информацию смотрите на .

    Хорошим редактором для начинающих является joe: запустив его с помощью команды jstar, вы получите те же самые сочетания клавиш, как и в редакторе, используемом в DOSWin. jed в режиме WordStar или IDE, даже еще лучше. Пожалуйста посмотрите раздел для того чтобы узнать, где можно найти данные редактора.

    Написание скриптов для bash -- это такой необъятный предмет, что сам по себе заслуживает книги и я не буду углубляться в этот предмет. Я просто дам вам пример скрипта командного процессора, из которого вы можете вычленить некоторые базовые правила. Прочитайте справочную страницу bash.


    #!/bin/sh # sample.sh # это комментарий # не изменяйте первую строку, она должна быть такой echo "Система называется: `uname -a`" # использовать вывод команды echo "Мое имя $0" # Встроенные переменные echo "Вы передали мне следующие $# параметров: "$* echo "Первым параметром является: "$1 echo -n "Введите ваше имя? " ; read your_name echo заметьте разницу: "hi $your_name" # использование кавычек вида " echo заметьте разницу: 'hi $your_name' # использование кавычек вида ' DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d $\{file\} ] ; then # если файл является каталогом DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f $\{file\} ] ; then FILES=`expr $FILES + 1` fi case $\{file\} in *.gif|*jpg) echo "$\{file\}: графический файл" ;; *.txt|*.tex) echo "$\{file\}: текстовый файл" ;; *.c|*.f|*.for) echo "$\{file\}: файл исходных текстов" ;; *) echo "$\{file\}: обычный файл" ;; esac done echo "обнаружено $\{DIRS\} каталогов и $\{FILES\} файлов" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # код завершения последней команды echo "ZxY--!!!WKW не найден" fi echo "достаточно... наберите 'man bash' если вам нужна дополнительная информация."

    Содержание раздела