Чтение онлайн

на главную

Жанры

Ubuntu 10. Краткое руководство пользователя
Шрифт:

# Комментарий

Вторая строка — это оператор echo, выводящий нашу строку. Сохраните сценарий под именем hello и введите команду:

$ chmod +x hello

Для запуска сценария введите команду:

./hello

На экране вы увидите строку:

Привет, мир!

Чтобы вводить для запуска сценария просто hello (без ./), сценарий нужно скопировать в каталог /usr/bin (точнее, в любой каталог

из переменной окружения PATH):

# cp./hello /usr/bin

22.4. Использование переменных в собственных сценариях

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

Для объявления переменной используется следующая конструкция:

переменная=значение

Пример объявления переменной:

ADDRESS=www.dkws.org.ua

echo $ADDRESS

Обратите внимание на следующие моменты:

при объявлении переменной знак доллара не ставится, но он обязателен при использовании переменной;

при объявлении переменной не должно быть пробелов до и после знака =.

Значение для переменной указывать вручную не обязательно — его можно прочитать с клавиатуры:

read ADDRESS

или со стандартного вывода программы:

ADDRESS='hostname'

Чтение значения переменной с клавиатуры осуществляется с помощью инструкции read. При этом указывать символ доллара не нужно. Вторая команда устанавливает в качестве значения переменной ADDRESS вывод команды hostname.

В Linux часто используются переменные окружения. Это специальные переменные, содержащие служебные данные. Вот примеры некоторых часто используемых переменных окружения:

HOME — домашний каталог пользователя, который запустил сценарий;

RANDOM — случайное число в диапазоне от 0 до 32 767;

UID — ID пользователя, который запустил сценарий;

PWD — текущий каталог.

Для установки собственной переменной окружения используется команда export:

# присваиваем переменной значение

$ADDRESS=www.dkws.org.ua

# экспортируем переменную — делаем ее переменной окружения

# после этого переменная ADDRESS будет доступна в других сценариях export $ADDRESS

22.5. Передача параметров сценарию

Очень часто сценариям нужно передавать различные параметры, например, режим работы или имя файла/каталога. Для передачи параметров используются следующие специальные переменные:

$0 — содержит имя сценария;

$n — содержит значение параметра (n — номер параметра);

$# — позволяет узнать количество

параметров, которые были переданы.

Рассмотрим небольшой пример обработки параметров сценария. Я понимаю, что конструкцию case-esac мы еще не рассматривали, но общий принцип должен быть понятен (листинг 22.3).

Думаю, приведенных комментариев достаточно, поэтому подробно рассматривать работу сценария из листинга 22.2 не будем.

22.6. Массивы и bash

Интерпретатор bash позволяет использовать массивы. Массивы объявляются подобно переменным. Вот пример объявления массива:

ARRAY[0]=1

ARRAY[1]=2

echo $ARRAY[0]

22.7. Циклы

Как и в любом языке программирования, в bash можно использовать циклы. Мы рассмотрим циклы for и while, хотя вообще в bash доступны также циклы until и select, но они применяются довольно редко.

Синтаксис цикла for выглядит так:

for переменная in список do

команды

done

В цикле при каждой итерации переменной будет присвоен очередной элемент списка, над которым будут выполнены указанные команды. Чтобы было понятнее, рассмотрим небольшой пример:

for n in 1 2 3;

do

echo $n;

done

Обратите внимание — список значений и список команд должны заканчиваться точкой с запятой.

Как и следовало ожидать, наш сценарий выведет на экран следующее:

1

2

3

Синтаксис цикла while выглядит немного иначе:

while условие

do

команды

done

Цикл while выполняется до тех пор, пока истинно заданное условие. Подробно об условиях мы поговорим в следующем разделе, а сейчас напишем аналог предыдущего цикла, то есть нам нужно вывести 1, 2 и 3, но с помощью while, а не for:

n=1

while [$n — lt 4]

do

echo "$n"

n=$(($n+1));

done

22.8. Условные операторы

В bash доступны два условных оператора — if и case. Синтаксис оператора if следующий:

Оператор if в bash работает аналогично оператору if в других языках программирования. Если истинно первое условие, то выполняется первый список команд, иначе — проверяется второе условие и т. д. Количество блоков elif, понятно, не ограничено.

Поделиться:
Популярные книги

Дайте поспать! Том III

Матисов Павел
3. Вечный Сон
Фантастика:
фэнтези
5.00
рейтинг книги
Дайте поспать! Том III

Путь Чести

Щукин Иван
3. Жизни Архимага
Фантастика:
фэнтези
боевая фантастика
6.43
рейтинг книги
Путь Чести

Энфис 2

Кронос Александр
2. Эрра
Фантастика:
героическая фантастика
рпг
аниме
5.00
рейтинг книги
Энфис 2

Сумеречный Стрелок 2

Карелин Сергей Витальевич
2. Сумеречный стрелок
Фантастика:
городское фэнтези
попаданцы
аниме
5.00
рейтинг книги
Сумеречный Стрелок 2

Сводный гад

Рам Янка
2. Самбисты
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Сводный гад

Книга пяти колец. Том 3

Зайцев Константин
3. Книга пяти колец
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Книга пяти колец. Том 3

Диверсант

Вайс Александр
2. Фронтир
Фантастика:
боевая фантастика
космическая фантастика
5.00
рейтинг книги
Диверсант

Ученичество. Книга 2

Понарошку Евгений
2. Государственный маг
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Ученичество. Книга 2

Титан империи 3

Артемов Александр Александрович
3. Титан Империи
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Титан империи 3

Последний попаданец 9

Зубов Константин
9. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 9

Измена. Право на сына

Арская Арина
4. Измены
Любовные романы:
современные любовные романы
5.00
рейтинг книги
Измена. Право на сына

Неестественный отбор.Трилогия

Грант Эдгар
Неестественный отбор
Детективы:
триллеры
6.40
рейтинг книги
Неестественный отбор.Трилогия

Хозяйка дома на холме

Скор Элен
1. Хозяйка своей судьбы
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Хозяйка дома на холме

Гром над Академией. Часть 2

Машуков Тимур
3. Гром над миром
Фантастика:
боевая фантастика
5.50
рейтинг книги
Гром над Академией. Часть 2