
U
ser
A
nd
LINUX
Programming
ualinux.com
16
U & L
1 1 - 0 1
Данное введение в программирование на bash прель-
стило меня своей краткостью и содержательностью. В то
же время я изменил некоторые примеры, потому что они
делали слегка не то, что ожидается новичками. Начинаю-
щим текст будет полезен как отправная точка для начала
написания скриптов. Опытным – как справочник. Удачно-
го чтения!
Выражаю также благодарность Владимиру Черному
(начальнику отдела образовательных проектов ALT Linux)
за внесенные в текст правки.
Тема программирования на bash из разряда тех, кото-
рые могут быть рассмотрены и в пару, и в сотни страниц.
Гарольд Родригес (Harold Rodriguez) объясняет эту тему в
приведенном ниже руководстве из двух частей. Его пре-
красный и яркий стиль позволил ему охватить все суще-
ственные черты программирования на bash буквально на
нескольких страницах.
Если вы никогда не программировали на bash ранее –
сейчас самое время начать. Даже если у вас мало знаний о
том, что такое bash, вы вполне можете посмотреть на мно-
жество интересных скриптов, разбираемых Гарольдом.
ВВЕДЕНИЕ
Подобно остальным оболочкам, доступным в Linux,
Bourne Again shell (bash) является не только, собственно,
командной оболочкой, но и языком для написания сце-
нариев (скриптов) (слова «сценарий» и «скрипт» обычно
являются синонимами – прим. перев.). Скрипты позволя-
ют в полной мере использовать возможности оболочки
и автоматизировать множество задач, которые иначе по-
требуют для своего выполнения ввода множества команд.
Многие программы, работающие внутри вашего компью-
тера с Linux – это скрипты. Если вы захотите узнать как они
работают или изменить их, важно понимать их синтаксис
и семантику. Кроме того, понимая язык bash, вы сможете
писать свои собственные программы, чтобы выполнять
разные задачи теми способами, которые выберете сами.
ТАК ВСЕ-ТАКИ ПРОГРАММИРОВАНИЕ
(PROGRAMMING) ИЛИ НАПИСАНИЕ СКРИПТОВ
(SCRIPTING)?
Новичков в программировании, как правило, озада-
чивает разница между, собственно, программированием
и языками скриптов. Программы, написанные на каких-то
языках программирования, обычно гораздо более мощ-
ные по возможностям и работают намного быстрее, чем
программы, написанные на языках сценариев. Примеры
языков программирования – C, C ++ и Java. Создание про-
граммы на каком-либо языке программирования обыч-
но начинается с написания исходного кода (текстовый
файл, содержащий инструкции о том, как будет работать
окончательная программа), затем его необходимо ском-
пилировать (собрать) в исполняемый файл. Этот испол-
няемый файл не так легко переносить между различными
операционными системами. Например, если вы напишете
программу на C для Linux, вы не сможете запустить ее в
Windows. Чтобы сделать это, вам придется перекомпили-
ровать исходный код под Windows. Написание скрипта
также начинается с написания исходного кода, который
не компилируется в исполняемый файл. Вместо этого ин-
терпретатор оболочки последовательно читает инструк-
ции в файле исходного кода и выполняет их. К сожалению,
поскольку интерпретатор должен читать каждую инструк-
цию, скорость исполнения скрипта обычно медленнее
(намного медленнее – прим. перев.), чем у скомпилиро-
ванной программы. Основным преимуществом скриптов
является то, что вы можете легко переносить исходный
файл в любую операционную систему и просто запускать
их (естественно при наличии интерпретатора для этой
операционной системы – прим. перев.).
Bash – это язык сценариев. Он отлично подходит для
написания небольших программ, но если вы планируете
ПРОГРАММИРОВАНИЕ НА
BASH
Часть I. Краткое введение