Командные файлы (скрипты) Командный файл (скрипт) — это неформатированный текстовый файл, который содержит команды bash. Скрипты относятся к числу исполняемых файлов, то есть когда набираете в консоли ./имя_файла, то выполняются команды, записанные в нем. Любая команда, которой вы пользуетесь в bash может быть записана в командный файл. Первой строчкой файла должна быть запись вида #!/bin/bash Этапы создания командного файла: 1. создаем файл (touch text); 2. заполняем файл командами (например: kwrite text); 3. делаем его исполняемым (chmod +x text) 4. выполняем файл (./text) Упражнение 1 создайте и выполните командный файл text1 следующего содержания: #!/bin/bash clear cd ~ ls данный командный файл производит очистку экрана, переходит в домашний каталог и выводит его содержимое. echo — выводит сообщение на экран Упражнение 2 создайте и выполните командный файл text2 следующего содержания: #!/bin/bash clear echo привет echo содержимое текущего каталога: ls данный командный файл производит очистку экрана, выводит поясняющий текст и содержимое каталога. expr вычисляет значение выражения, переданного в качестве аргумента, и посылает результат на стандартный вывод. Используется для выполнения операций над переменными языка Shell. Упражнение 3 создайте и выполните командный файл text3 следующего содержания: #!/bin/bash clear count=5 tot=200 count =`expr $tot / $count` echo $count tot=`expr $tot + 1` echo $tot Ввод данных с клавиатуры осуществляется с помощью команды read, которая считывает строку из стандартного потока ввода и сохраняет ее в переменной. Упражнение 4 создайте и выполните командный файл text4 следующего содержания: #!/bin/bash clear echo "Как вас зовут? " read n echo "Здравствуйте, $n" Ввод и вывод. Перенаправление Каждый процесс в Linux получает при старте три потока данных (специальные файлы). Первый открыт на чтение и является стандартным вводом процесса stdin (процесс из него берет данные, читает), по умолчанию это клавиатура. Второй поток открыт на запись и называется стандартным выводом процесса stdout (процесс в него записывает данные), по умолчанию это экран. Третий поток данных предназначен для вывода сообщений об ошибках и называется стандартный вывод ошибок. Команда cat, которая берет данные с потока ввода и передает их на поток вывода, т.е. c stdin на stdout. Введите команду cat. Поскольку не указаны потоки ввода и вывода, то считаются стандартными, т.е. ввод с клавиатуры, вывод на экран. Поэтому система будет ожидать ввода текста, а после сразу же выводить его на экран. Оболочка Shell дает возможность перенаправлять стандартные потоки, например, вывод делать не на экран, а в файл, чтобы данные были записаны и сохранены. Для этого используются символы > и < . > - перенаправление стандартного вывода < - перенаправление стандартного ввода Упражнение 5 создайте и выполните командный файл text5 следующего содержания: #!/bin/bash clear cat > textfile -(даные с клавиатуры записываются в файл) cat >> textfile (добавляет в файл) cat < textfile > textfile (читает данные из файла textfile и записывает их в файл textfile2) Команда sort данные, полученные с входного потока сортирует и направляет на поток вывода. Оператор выбора case имеет структуру: case строка-образец in строка-шаблон) список команд;; строка-шаблон) список команд;; ...esac Упражнение 6 создайте и выполните командный файл text4 следующего содержания: echo "Введите имя файла: " read x echo " Выберите какую операцию выполнить с файлом: 1 - отсортировать 2 - выдать на экран 3 - определить число строк " read y case $y in 1) sort < $x ;; 2) cat < $x ;; 3) wc -l < $x ;; *) echo " Ошибка. Нет такой команды" ;; esac;
Разработка Павловой Натальи Сергеевны, 2009 г.
|