Поиск по сайту:

Сценарии оболочки, часть I: Начало работы со сценариями bash


На этой странице

  1. Введение
  2. Зачем создавать сценарии оболочки?
  3. Я новичок в среде Linux, могу ли я научиться создавать сценарии оболочки?
  4. Создание моего первого сценария оболочки
  5. Привет, мир!
  6. Создание вывода с помощью printf
  7. Заключение

Привет. Это первая часть серии руководств по Linux. При написании этого руководства я предполагаю, что вы абсолютный новичок в создании сценариев Linux и очень хотите учиться. По ходу серии уровень будет повышаться, так что уверен, будет что-то новое даже для более продвинутых пользователей. Итак, давайте начнем. -0;var ffid=1;var alS=1002%1000;var container=document.getElementById(slotId);container.style.width=100%;var ins=document.createElement(ins);ins.id=slotId+- asloaded;ins.className=adsbygoogle ezasloaded;ins.dataset.adClient=pid;ins.dataset.adChannel=cid;if(ffid==2){ins.dataset.fullWidthResponsive=true;}

Вступление

Большинство наших операционных систем, включая Linux, могут поддерживать различные пользовательские интерфейсы (UI). Графический интерфейс пользователя (GUI) — это удобный интерфейс рабочего стола, который позволяет пользователям щелкать значки для запуска приложения. Другой тип интерфейса — это интерфейс командной строки (CLI), который является чисто текстовым и принимает команды от пользователя. Оболочка, интерпретатор команд считывает команду через интерфейс командной строки и вызывает программу. В настоящее время большинство операционных систем предоставляют оба интерфейса, включая дистрибутивы Linux.

При использовании оболочки пользователь должен ввести серию команд на терминале. Нет проблем, если пользователю нужно выполнить задачу только один раз. Однако, если задача сложная и ее нужно повторять несколько раз, она может стать немного утомительной для пользователя. К счастью, есть способ автоматизировать задачи оболочки. Это можно сделать, написав и запустив сценарии оболочки. Сценарий оболочки — это тип файла, который состоит из ряда и последовательности команд, поддерживаемых оболочкой Linux.

Зачем создавать сценарии оболочки?

Сценарий оболочки — очень полезный инструмент для автоматизации задач в ОС Linux. Его также можно использовать для объединения утилит и создания новых команд. Вы можете комбинировать длинные и повторяющиеся последовательности команд в одну простую команду. Все сценарии можно запускать без необходимости их компиляции, поэтому у пользователя будет возможность беспрепятственно создавать прототипы команд.

Я новичок в среде Linux, могу ли я научиться создавать сценарии оболочки?

Конечно! Создание сценариев оболочки не требует сложных знаний о Linux. Подойдет базовое знание общих команд в CLI Linux и текстовом редакторе. Если вы абсолютный новичок и не имеете базовых знаний о командной строке Linux, это руководство может оказаться полезным для вас.

Создание моего первого сценария оболочки

Bash (Bourne-Again Shell) является оболочкой по умолчанию в большинстве дистрибутивов Linux и OS X. Это проект GNU с открытым исходным кодом, предназначенный для замены sh (Bourne Shell), оригинальной оболочки Unix. Он был разработан Брайаном Фоксом и выпущен в 1989 году.

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

#!/bin/bash

Каждый сценарий Linux начинается с строки shebang (#!). Строка взрыва указывает полный путь /bin/bash к интерпретатору команд, который будет использоваться для запуска скрипта.

Привет мир!

Каждый язык программирования начинается с Hello World! отображать. Мы не будем прекращать эту традицию и создадим собственную версию этого фиктивного вывода в сценариях Linux.

Чтобы приступить к созданию нашего скрипта, выполните следующие действия:

Шаг 1: Откройте текстовый редактор. Я буду использовать gedit для этого примера. Чтобы открыть gedit с помощью терминала, нажмите CTRL + ALT + T на клавиатуре и введите gedit. Теперь мы можем приступить к написанию нашего сценария.

Шаг 2: Введите следующую команду в текстовом редакторе:

#!/bin/bash 
echo "Hello World"

Шаг 3: Теперь сохраните документ с именем файла hello.sh. Обратите внимание, что каждый скрипт будет иметь расширение .sh.

Шаг 4. Из соображений безопасности, применяемых в дистрибутивах Linux, файлы и сценарии по умолчанию не являются исполняемыми. Однако мы можем изменить это для нашего скрипта с помощью команды chmod в Linux CLI. Закройте приложение gedit и откройте терминал. Теперь введите следующую команду:

chmod +x hello.sh

В приведенной выше строке задается исполняемый файл hello.sh. Эту процедуру необходимо выполнить только один раз перед первым запуском скрипта.

Шаг 5: Чтобы запустить скрипт, введите в терминале следующую команду:

./hello.sh

Давайте другой пример. На этот раз мы включим отображение некоторой системной информации с помощью команд whoami и date в наш сценарий приветствия.

Откройте hello.sh в нашем текстовом редакторе, и мы отредактируем наш скрипт, набрав:

#!/bin/bash
echo "Hello $(whoami) !"
echo "The date today is $(date)"

Сохраните изменения, которые мы сделали в скрипте, и запустите скрипт (шаг 5 в предыдущем примере), набрав:

./hello.sh

Вывод скрипта будет:

В предыдущем примере команды whoami и date использовались внутри команды echo. Это означает только то, что все утилиты и команды, доступные в командной строке, также могут использоваться в сценариях оболочки.

Генерация вывода с помощью printf

До сих пор мы использовали эхо для печати строк и данных из команд в нашем предыдущем примере. Эхо используется для отображения строки текста. Еще одна команда, которую можно использовать для отображения данных, — это команда printf. Функция printf управляет и печатает данные подобно функции printf в C.

Ниже приводится сводка общих элементов управления print:

Control Usage
\" Double quote
\\ Backslash
\b Backspace
\c Produce no further output
\e Escape
\n New Line
\r Carriage Return
\t Horizontal tab
\v Vertical Tab

Пример 3: мы откроем предыдущий файл hello.sh, изменим все эхо на printf и снова запустим скрипт. Обратите внимание, какие изменения происходят в нашем выводе.

#!/bin/bash
printf "Hello $(whoami) !"
printf "The date today is $(date)"

Все строки связаны друг с другом, потому что мы не использовали никаких элементов управления в команде printf. Поэтому команда printf в Linux имеет те же свойства, что и функция C printf.

Для форматирования вывода нашего скрипта мы будем использовать два элемента управления из приведенной выше таблицы. Чтобы работать, элементы управления должны быть обозначены символом\внутри кавычек команды printf. Например, мы отредактируем предыдущее содержимое hello.sh следующим образом:

#!/bin/bash
printf "Hello \t $(whoami) !\n"
printf "The date today is $(date)\n"

Скрипт выводит следующее:

Заключение

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