Основы Bash-скриптов
Программирование на Bash можно рассматривать как последовательность команд, в оболочке, которые образуют определенный сценарий выполнения. В контексте сценариев Bash мы ставим задачи оболочке Bash, и прописываем в скриптах, что она должна делать.
Ниже мы разберем основы Bash-скриптинга и коснемся нескольких частных случаев программирования на нем.
Что такое оболочка Bash?
В сфере IT оболочка - это программное обеспечение, которое соединяет пользователя с компьютером. Оболочка позволяет пользователю узнать о системе или файлах в ней или управлять системой. Оболочка обычно является частью операционной системы. Существует два типа оболочек.
Командно-ориентированная оболочка, например OS X терминал.
Оболочка с графическим интерфейсом пользователя, например, искатель для OS X или всем знакомая Windows.
Терминал представляет собой командно-ориентированную оболочку, потому что здесь мы вводим команды напрямую, а не нажимаем кнопки мыши или вводим информацию в поля. Командно-ориентированные оболочки также имеют множество разновидностей - оболочка Bourne, Bash, оболочка Z и так далее. Как стандарт на компьютерах Mac, терминал открывает оболочку Bash.
Как работают Bash-скрипты?
Любой сценарий Bash представляет собой простой текстовый файл, который содержит ряд команд для циклов и запросов. Они представляют собой смесь команд, которые мы обычно вводим в командной строке ouselves (например, ls или cp) и команды, которые мы могли бы вводить в командной строке, но которые там не предусмотрены.
При вызове текстового файла как программы, команды обрабатываются одна за другой. Все, что мы делаем в оболочке, может быть записано в сценарии, и наоборот, сценарий также может быть скопирован в оболочку и таким образом выполнен.
Файл Bash может взаимодействовать с пользователем посредством запросов, например, для «принимайте переменные» или «принимайте решения» с помощью запроса «да» или «нет». Благодаря такому взаимодействию сценарии могут служить различным целям.
Все, что вы можете нормально запустить из командной строки, может быть помещено в скрипт, и оно будет делать то же самое. Принято считать, что файлы, являющиеся скриптами Bash, имеют расширение .sh (например, myscript.sh). Как вы знаете Linux - это система без расширений, поэтому для работы скрипта не обязательно иметь это расширение.
Выбор текстового редактора
Текстовые редакторы, предустановленные вашим собственным дистрибутивом Linux, в основном идеально подходят для создания сценариев Bash. Они предлагают подсветку синтаксиса, которая выделяет команды и переменные цветом и, таким образом, также указывает на орфографические ошибки.
Только те, кто хочет создать BASH-скрипт под Windows, должны дополнительно установить текстовый редактор, например «Notepad ++». Программы командной строки "Nano" и "Vim" также предлагают подсветку синтаксиса и практически всегда доступны в Linux.
Начало работы
Выберите имя скрипта и создайте файл
Прежде чем прописать имя файла, мы должны убедиться, что оно еще не используется. Мы делаем это с type.
Если имя программы еще не существует, type возвращает «bash: type: имя программы: не найдено». В противном случае указывается путь к существующему файлу.
Далее вы можете вводить стандартные команды. Например, создать отдельный каталог с помощью mkdir и измените его с помощью cd. Также мы используем touch, чтобы создать изначально пустой файл скрипта.
mkdir ~ / файлы сценариев
CD ~ / файлы сценариев
touch catalog.sh
Что означают stdin, stdout и stderr?
В Bash существует три различных типа ввода и вывода контента, называемые стандартными потоками данных. Краткая форма записи является обычной для стандарта. Это приводит к трем потокам данных stdin, stdout и stderr.
stdin - стандартный ввод
Данные могут быть считаны в программы с использованием стандартного ввода. Как правило, стандартный ввод подключен к клавиатуре. Программы получают пользовательский ввод через ручную запись команд.
stdout - стандартный вывод
Программы могут выводить данные через стандартный вывод. Обычно это делается с помощью монитора. Программы отправляют выводимые тексты пользователю через стандартный вывод.
stderr - стандартный вывод ошибок
Стандартный вывод ошибок - это второй выходной поток данных, который выводит сообщения об ошибках и состоянии. Обычно также на монитор. Стандартный вывод ошибок также может быть перенаправлен отдельно от стандартного вывода, чтобы сообщения об ошибках не смешивались с выходными данными.
В результате стандартными потоками данных можно управлять следующим образом:
- перенаправить поток данных stdout в файл;
- перенаправить поток данных stderr в файл;
- перенаправить из stdout в поток stderr;
- перенаправить из stderr в поток stdout;
- перенаправить в файл с помощью stderr и stdout;
- перенаправить с помощью stderr и stdout в поток данных stdout;
- перенаправить с помощью stderr и stdout в поток данных stderr;
Два примера:
В следующем примере вывод программы - здесь ls - записывается в файл. В результате команда list записывает все файлы в текущем каталоге в файл myfile.txt.
$ ls > myfile.txt
В следующем примере поток данных из stderr программы - здесь grep - записывается в файл.
$ grep da * 2> grep-errors.txt
К сожалению, в небольшой статье нельзя рассмотреть все особенности скриптинга на Bash. Но теперь вы представляете ключевые особенности работы этой оболочки и принципы работы с данными в ней.
Заказывайте хостинг и выбирайте домен в компании «Хостинг Украина».
У нас качественный и надежный сервис, удобное система управления через админ-панель, интеллектуальные системы защиты и техническая поддержка, которая поможет решить все возникающие вопросы в любое время суток.
Любой тариф нашего хостинга подойдет для Wordpress. Вы можете выбрать именно тот пакет, который максимально соответствует потребностям вашего проекта: SSD хостинг, VPS на SSD, Cloud (облачный) хостинг, облачный VPS. Выделенный сервер или dedicated server.
Мы разработали систему автоматического тестирование сайта, это даст Вам возможность проверить десятки показателей и настроек сайта и домена. Проверит правильность параметров конфигурационного файла WordPress, подключения к базе данных, настроек тем и модулей. Проверит правильность настройки параметра php_memory_limit.
Присоединяйтесь к «Хостинг Украина» и мы позаботимся о технической стороне вашего бизнеса.