
U
ser
A
nd
LINUX
Programming
ualinux.com
18
U & L
1 1 - 0 1
в реальном программировании является команда printf,
которая имеет больше возможностей, если вы знакомы с
программированием на C. Ну и на самом деле, точно такой
же результат можно было бы получить и без написания
скрипта:
echo «Hello World”
Hello World
Написание скриптов на bash предлагает широкий
спектр возможностей и этому легко научиться. Как вы
только что могли видеть, здесь используются разные ко-
манды Linux, чтобы писать собственные скрипты. Ваша
программа-оболочка представляет собой несколько дру-
гих программ, собранных вместе для выполнения какой-
либо задачи.
ДРУГИЕ ПОЛЕЗНЫЕ ПРОГРАММЫ
Сейчас мы напишем программу, которая переместит
все файлы в каталог, удалит его вместе с содержимым, а
затем создаст это каталог заново. Это может быть сделано
с помощью следующих команд (В примере, приведенном
в оригинале автор показывает, что не зря рекомендовал
делать приведенные упражнения под специально создан-
ным пользователем. Результатом выполнения данной по-
следовательности команд будет чистый каталог, в котором
вы работаете. Скорее всего это будет ваша домашняя ди-
ректория. Поэтому, если вы НЕ хотите удаления всех фай-
лов в ней – НЕ выполняйте команды из оригинала статьи.
А лучше последуйте совету автора и создайте отдельно-
го пользователя специально для тренировки написания
скриптов. Этот пример я немного расширил и теперь он не
такой опасный. – Прим. перев.):
touch fi le1
mkdir trash
mv fi le1 trash
rm -rf trash
mkdir trash
Вместо того, чтобы вводить это все в интерактивном ре-
жиме, напишем скрипт, выполняющий эти команды:
#!/bin/bash
touch fi le1
mkdir trash
mv fi le1 trash
rm -rf trash
mkdir trash
echo “Файл удален!”
Сохраните его под именем clean.sh и теперь все, что
нужно сделать – запустить его. Он переместит все файлы
в каталог, удалит его, создаст заново каталог и даже напе-
чатает сообщение об удалении файлов. Запомните, если
вы обнаружите, что регулярно делаете нечто требующее
набора одной и той же последовательности команд – это
вполне можно автоматизировать написанием скрипта.
КОММЕНТАРИИ
Комментарии помогают сделать ваш код более чита-
бельным. Они не влияют на то, что выводит программа.
Они написаны специально для того, чтобы вы их прочли.
Все комментарии в Bash начинаются с хэш-символа #, за
исключением первой строки (#!/bin/bash), имеющей спе-
циальное назначение. Первая строка – не комментарий.
Возьмем для примера следующий код:
#!/bin/bash
# Эта программа считает от 1 до 10:
for i in 1 2 3 4 5 6 7 8 9 10; do
echo $i
done
Даже если вы пока не понимаете скрипты на Bash, вы
сразу же поймете, что делает приведенный выше пример,
благодаря комментарию. Комментирование кода – хо-
рошая практика. Со временем вы поймете, что, если вам
нужно будет поддерживать ваши скрипты, то при наличии
комментированного кода – делать это станет легче.
ПЕРЕМЕННЫЕ
Переменные это просто «контейнеры», которые содер-
жат некоторые значения. Создавать их нужно по многим
причинам. Вам нужно будет как-то сохранять вводимые
пользователем данные, аргументы или числовые величи-
ны. Например:
#!/bin/bash
x=12
echo ”Значение переменной x - $x”
Здесь мы присвоили переменной x значение 12. Стро-
ка echo “Значение переменной х - $x” напечатает текущее
значение x. При определении переменной не допускается
наличие каких-то пробелов между именем переменной и
оператором присваивания: «=». Синтаксис следующий:
имя_переменной=ее_значение
Обращение к переменным выполняется с помощью
префикса «$» перед именем переменной. Именно таким
образом мы получаем доступ к значению переменной х с
помощью команды echo $x.
Есть два типа переменных – локальные и переменные
окружения (среды). Переменные окружения устанавлива-