Home

Page 19
Page 19
background image

U

ser

  

A

nd

LINUX

Programming

ualinux.com

19

U & L  

1 1 - 0 1

ются системой и имеют специальной назначение. Обычно 

их значение может быть выведено с помощью команды 

echo. Например, если ввести:

echo $SHELL
/bin/bash

Вы получили имя оболочки, запущенной в данный мо-

мент. Переменные среды задаются в файле /etc/profi le и в 

~/.bash_profi le. Команда echo может применяться для про-

верки текущего значения переменной.

Примечание: задание переменных среды подробно 

описано в этой статье – «Как задавать переменные сре-

ды» – http://learnbyexamples.org/linux/linux-tip-how-to-set-

shell-environment-variables-bash-shell.html. В статье также 

описаны некоторые особенности оболочки Bash.

Если у вас все еще возникают проблемы с пониманием 

того, зачем нужно использовать переменные, приведем 

пример:

#!/bin/bash
echo «Значение х – 12».
echo «У меня есть 12 карандашей».
echo «Он сказал мне, что значение х равно 

12».

echo «Мне 12 лет.»
echo «Как получилось, что значение х рав-

но 12?»

Хорошо, теперь предположим, что вы решите поменять 

значение х на 8 вместо 12. Что для этого нужно сделать? Вы 

должны изменить все строки кода, в которых говорится, 

что х равно 12. Но погодите... Есть другие строки кода, где 

упоминается это число, поэтому простую автозамену ис-

пользовать не получится. Теперь приведем аналогичный 

пример, только с использованием переменных:

#!/bin/bash
x=12 # задаем переменной х значение 12
echo «Значение х = $х»
echo «У меня есть 12 карандашей»
echo «Он сказал мне, что значение х равно 

$х»

echo «Мне 12 лет»
echo «Как получилось, что значение х рав-

но $x?»

Здесь мы видим, что $x выводит текущее значение 

переменной х равное 12. Поэтому теперь, если вы хотите 

задать новое значение х равное 8, то все что вам нужно 

сделать, это изменить одну строчку с х=12 на х=8, и в выво-

де все строки с упоминанием x также изменяться. Поэтому 

вам не нужно руками модифицировать остальные строки. 

Как вы увидите позже, переменные имеют и другие спосо-

бы применения.

УПРАВЛЯЮЩИЕ ОПЕРАТОРЫ

Управляющие операторы делают вашу программу ком-

пактнее и позволяют ей принимать решения. И, что еще 

более важно, они позволяют нам выполнять проверку на 

наличие ошибок. До сих пор все, что мы сделали, это писа-

ли скрипты, которые просто исполняют набор инструкций 

в файле. Например:

#!/bin/bash
cp /etc/foo .
echo ”Готово”

Это небольшой скрипт, назовем его bar.sh, копирует 

файл с именем /etc/foo в текущий каталог и выводит «Го-

тово» на экране. Эта программа будет работать при одном 

условии - файл /etc/foo должен существовать. В противном 

случае вот что произойдет:

./bar.sh
cp: /etc/foo: No such fi le or directory
Готово

Таким образом, как вы видите, существует проблема. 

Не у каждого, кто будет запускать вашу программу, будет 

файл /etc/foo. Наверное, было бы лучше, если бы ваша 

программа сначала проверяла наличие данного файла, а 

затем при положительном ответе – выполняла бы копиро-

вание, в противном случае – просто бы завершала работу. 

В псевдо-коде это выглядит так:

если /etc/foo существует, то
скопировать  /etc/foo  в  текущую  директо-

рию

напечатать «Готово» на экране
в противном случае,
напечатать на экране «Этот файл не суще-

ствует»

выход

Можно ли это сделать в Bash? Конечно! Набор управ-

ляющих операторов Bash включает в себя: if, while, until, 

for и case. Каждый из этих операторов является парным, то 

есть начинается он одним тегом и заканчивается другим. 

Например, если условный оператор if начинается с if и за-

канчивается fi . Управляющие операторы cp /etc/foo . – это 

не отдельные программы в системе, они встроены в bash.

if … else … elif … fi 

Это один из наиболее распространенных операторов. 

Он позволяет программе принимать решения следующим 

образом – «если условие верно – делаем одно, если нет 


Copyright © 2021 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.