Как создать собственный script (скрипт-сценарий) в Linux. Пишем скрипты в Linux (обучение на примерах) Интересные bash скрипты для любителей терминала в Linux

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

Если вы уже более опытный пользователь, то, наверное, часто выполняете различные задачи через терминал. Часто встречаются задачи, для которых нужно выполнять несколько команд по очереди, например, для обновления системы необходимо сначала выполнить обновление репозиториев, а уже затем скачать новые версии пакетов. Это только пример и таких действий очень много, даже взять резервное копирование и загрузку скопированных файлов на удаленный сервер. Поэтому, чтобы не набирать одни и те же команды несколько раз можно использовать скрипты. В этой статье мы рассмотрим написание скриптов на Bash, рассмотрим основные операторы, а также то как они работают, так сказать, bash скрипты с нуля.

Скрипт или как его еще называют - сценарий, это последовательность команд, которые по очереди считывает и выполняет программа-интерпретатор, в нашем случае это программа командной строки - bash.

Скрипт - это обычный текстовый файл, в котором перечислены обычные команды, которые мы привыкли вводить вручную, а также указанна программа, которая будет их выполнять. Загрузчик, который будет выполнять скрипт не умеет работать с переменными окружения, поэтому ему нужно передать точный путь к программе, которую нужно запустить. А дальше он уже передаст ваш скрипт этой программе и начнется выполнение.

Простейший пример скрипта для командной оболочки Bash:

!/bin/bash
echo "Hello world"

Утилита echo выводит строку, переданную ей в параметре на экран. Первая строка особая, она задает программу, которая будет выполнять команды. Вообще говоря, мы можем создать скрипт на любом другом языке программирования и указать нужный интерпретатор, например, на python:

!/usr/bin/env python
print("Hello world")

Или на PHP:

!/usr/bin/env php
echo "Hello world";

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

Этот флаг ничего не меняет в самом файле, только говорит системе, что это не просто текстовый файл, а программа и ее нужно выполнять, открыть файл, узнать интерпретатор и выполнить. Если интерпретатор не указан, будет по умолчанию использоваться интерпретатор пользователя. Но поскольку не все используют bash, нужно указывать это явно.

Чтобы выполните:

chmod ugo+x файл_скрипта

Теперь выполняем нашу небольшую первую программу:

./файл_скрипта

Все работает. Вы уже знаете как написать маленький скрипт, скажем для обновления. Как видите, скрипты содержат те же команды, что и выполняются в терминале, их писать очень просто. Но теперь мы немного усложним задачу. Поскольку скрипт, это программа, ему нужно самому принимать некоторые решения, хранить результаты выполнения команд и выполнять циклы. Все это позволяет делать оболочка Bash. Правда, тут все намного сложнее. Начнем с простого.

Переменные в скриптах

Написание скриптов на Bash редко обходится без сохранения временных данных, а значит создания переменных. Без переменных не обходится ни один язык программирования и наш примитивный язык командной оболочки тоже.

Возможно, вы уже раньше встречались с переменными окружения. Так вот, это те же самые переменные и работают они аналогично.

Например, объявим переменную string:

string="Hello world"

Значение нашей строки в кавычках. Но на самом деле кавычки не всегда нужны. Здесь сохраняется главный принцип bash - пробел - это специальный символ, разделитель, поэтому если не использовать кавычки world уже будет считаться отдельной командой, по той же причине мы не ставим пробелов перед и после знака равно.

Чтобы вывести значение переменной используется символ $. Например:

Модифицируем наш скрипт:

!/bin/bash
string1="hello "
string2=world
string=$string1$string2
echo $string

И проверяем:

Bash не различает типов переменных так, как языки высокого уровня, например, С++, вы можете присвоить переменной как число, так и строку. Одинаково все это будет считаться строкой. Оболочка поддерживает только слияние строк, для этого просто запишите имена переменных подряд:

!/bin/bash
string1="hello "
string2=world
string=$string1$string2\ and\ me
string3=$string1$string2" and me"
echo $string3

Проверяем:

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

Переменные и вывод команд

Переменные не были бы настолько полезны, если бы в них невозможно было записать результат выполнения утилит. Для этого используется такой синтаксис:

$(команда )

С помощью этой конструкции вывод команды будет перенаправлен прямо туда, откуда она была вызвана, а не на экран. Например, утилита date возвращает текущую дату. Эти команды эквивалентны:

Понимаете? Напишем скрипт, где будет выводиться hello world и дата:

string1="hello world "
string2=$(date)

string=$string1$string2

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

Параметры скрипта

Не всегда можно создать bash скрипт, который не зависит от ввода пользователя. В большинстве случаев нужно спросить у пользователя какое действие предпринять или какой файл использовать. При вызове скрипта мы можем передавать ему параметры. Все эти параметры доступны в виде переменных с именами в виде номеров.

Переменная с именем 1 содержит значение первого параметра, переменная 2, второго и так далее. Этот bash скрипт выведет значение первого параметра:

!/bin/bash
echo $1

Управляющие конструкции в скриптах

Создание bash скрипта было бы не настолько полезным без возможности анализировать определенные факторы, и выполнять в ответ на них нужные действия. Это довольно-таки сложная тема, но она очень важна для того, чтобы создать bash скрипт.

В Bash для проверки условий есть команда Синтаксис ее такой:

if команда_условие
then
команда
else
команда
fi

Эта команда проверяет код завершения команды условия, и если 0 (успех) то выполняет команду или несколько команд после слова then, если код завершения 1 выполняется блок else, fi означает завершение блока команд.

Но поскольку нам чаще всего нас интересует не код возврата команды, а сравнение строк и чисел, то была введена команда [[, которая позволяет выполнять различные сравнения и выдавать код возврата зависящий от результата сравнения. Ее синтаксис:

[[ параметр1 оператор параметр2 ]]

Для сравнения используются уже привычные нам операторы <,>,=,!= и т д. Если выражение верно, команда вернет 0, если нет - 1. Вы можете немного протестировать ее поведение в терминале. Код возврата последней команды хранится в переменной $?:

Теперь объединением все это и получим скрипт с условным выражением:

!/bin/bash
if [[ $1 > 2 ]]
then
echo $1" больше 2"
else
echo $1" меньше 2 или 2"
fi

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

Циклы в скриптах

Преимущество программ в том, что мы можем в несколько строчек указать какие действия нужно выполнить несколько раз. Например, возможно написание скриптов на bash, которые состоят всего из нескольких строчек, а выполняются часами, анализируя параметры и выполняя нужные действия.

Первым рассмотрим цикл for. Вот его синтаксис:

for переменная in список
do
команда
done

Перебирает весь список, и присваивает по очереди переменной значение из списка, после каждого присваивания выполняет команды, расположенные между do и done.

Например, переберем пять цифр:

for index in 1 2 3 4 5
do
echo $index
done

Или вы можете перечислить все файлы из текущей директории:

for file in $(ls -l); do echo "$file"; done

Как вы понимаете, можно не только выводить имена, но и выполнять нужные действия, это очень полезно когда выполняется создание bash скрипта.

Второй цикл, который мы рассмотрим - это цикл while, он выполняется пока команда условия возвращает код 0, успех. Рассмотрим синтаксис:

while команда условие
do
команда
done

Рассмотрим пример:

!/bin/bash
index=1
while [[ $index < 5 ]]
do
echo $index
let "index=index+1"
done

Как видите, все выполняется, команда let просто выполняет указанную математическую операцию, в нашем случае увеличивает значение переменной на единицу.

Хотелось бы отметить еще кое-что. Такие конструкции, как while, for, if рассчитаны на запись в несколько строк, и если вы попытаетесь их записать в одну строку, то получите ошибку. Но тем не менее это возможно, для этого там, где должен быть перевод строки ставьте точку с запятой ";". Например, предыдущий цикл можно было выполнить в виде одной строки:

index=1; while [[ $index < 5 ]]; do echo $index; let "index=index+1"; done;

Все очень просто я пытался не усложнять статью дополнительными терминами и возможностями bash, только самое основное. В некоторых случаях, возможно, вам понадобиться сделать gui для bash скрипта , тогда вы можете использовать такие программы как zenity или kdialog, с помощью них очень удобно выводить сообщения пользователю и даже запрашивать у него информацию.

Выводы

Теперь вы понимаете основы создания скрипта в linux и можете написать нужный вам скрипт, например, для резервного копирования. Я пытался рассматривать bash скрипты с нуля. Поэтому далеко не все аспекты были рассмотрены. Возможно, мы еще вернемся к этой теме в одной из следующих статей.

Прежде всего давайте разберём, что такое script и для чего он нужен.

Script в переводе с английского - сценарий . Все мы смотрим фильмы, многие из нас - спектакли. Чтобы создать фильм/спектакль, сценаристы пишут к ним сценарии, на основании которых артисты, сценка за сценкой исполняют на сцене свои роли, из чего и складывается фильм/спектакль. Работа по созданию сценария довольно кропотливая, где нужно учесть всё до мелочей, чтобы в конечном итоге артисты могли выполнить задуманное сценаристом, а зритель увидел целостное произведение.

Подобным же образом пишутся скрипты для выполнения списка задач, которые пользователь составляет вместе (код), чтобы сделать их выполнение проще и быстрее в операционной системе. Для написания простых скриптов совсем не обязательно иметь образование программиста.

Для начала давайте создадим самый, что ни на есть, простейший скрипт-Shell для обновления системы.

Все действия я буду проводить с системе Ubuntu , но они применимы и к другим системам Linux , производных от Ubuntu . Для этого нам понадобятся: Текстовый редактор , чтобы наполнить его нужными задачами для создания скрипта (кода) и Терминал - для выполнения созданного скрипта. Эти инструменты установлены в любом дистрибутие Linux по умолчанию.

Итак, открываем текстовый редактор Gedit и вводим в него первые обязательные символы под названием shebang .
shebang в программировании, это последовательность из двух символов: решётки и восклицательного знака (#! ) в начале файла скрипта. И добавляем к данным символам без пробелов /bin/sh - интерпретатор, где будет выполняться скрипт. /bin/sh - это обычно Bourne shell или совместимый интерпретатор командной строки, который передаёт "path/to/script" как первый параметр.
Первая обязательная строка скрипта будет выглядеть следующим образом:

# Мой первый Script обновления Ubuntu

Знак решётки (#) в самом начале строки даёт понять интерпретатору/терминалу, что эту строку читать и выполнять не нужно. Строка нужна в коде данного скрипта для того чтобы сам создатель скрипта знал, что он собирается выполнить на данном отрезке/сценке в коде, чтобы не запутаться в дальнейшем, когда таких строк будет много. Такие строки с знаком решётки называются - закомментированные .

sudo apt update
sudo apt upgrade -y

-y в конце второй команды даёт понять интерпретатору/терминалу, что это действие/команду нужно выполнить автоматически, без дополнительного подтверждения пользователем, нажатия клавиши Ввод . y - сокращённо от английского yes , т.е. да .

Вот и всё. Ваш первый скрипт создан. У вас должно получиться как на снимке:


Остаётся сохранить созданный файл/скрипт и дать ему Имя с обязательным расширением в конце - .sh . Расширение .sh присваивается исполняемому файлу.
Я дал ему Имя - обновление.sh , сохранив в Домашней папке пользователя:


Для того чтобы созданный файл/скрипт был исполняемый, ему нужно дать на это разрешение. Сделать это можно двумя способами.

1. Выполнить следующую команду в терминале:

sudo chmod +x обновление.sh

2. Либо открыть файловый менеджер в Домашней папке (где вы сохранили созданный скрипт), правый клик на файле, в контекстном меню - Свойства - Права и активировать пункт - Выполнение : Разрешить выполнение файла как программы :


Чтобы выполнить созданный скрипт, нужно открыть терминал (о чём я писал в самом начале статьи, что терминал - необходимый атрибут/инструмент для выполнения скрипта), ввести sh , через пробел название скрипта - обновление.sh и нажать клавишу Ввод :


Либо в терминале вводим sh и перетаскиваем из файлового менеджера созданный файл с скриптом (также через пробел):


После того как путь к файлу отобразится после команды sh и пробела, достаточно нажать клавишу Enter (Ввод), чтобы выполнить обновление системы:


Теперь в любой момент вы можете сделать обновление системы созданным собственным скриптом.

Да, кто-то может возразить, что обновление системы не сложно сделать выполнением этих двух команд в терминале, зачем пыжиться и создавать какие-то скрипты? Всё верно. Но это пример создания простейшего скрипта, чтобы показать, что "не боги горшки обжигают" 😃.

Научившись писать и использовать простейшие скрипты, можно создать скрипт по настройке системы, с тем чтобы в случае переустановки системы могли воспользоваться созданным сценарием без необходимости искать каждый раз в сети сайты с подобными настройками.

Многие из вас, скорее всего, пользуются сайтами по настройке системы, типа тех что я публикую после выхода очередного релиза Ubuntu - Ubuntu после установки или подобными сайтами. Откройте один из таких сайтов: , затем текстовый редактор для создания скрипта.
Для примера я сделал следующую заготовку.

В текстовом редакторе вводим первую обязательную строку:

# Настройка Ubuntu после уставновки
# Обновление системы

Ниже следуют команды обновления системы:

sudo apt update
sudo apt upgrade -y

Строка описания: Добавление репозиториев:

# Добавление репозиториев

И добавляете необходимые репозитории для дальнейшей установки программного обеспечения:

sudo add-apt-repository "deb http://archive.canonical.com/ $(lsb_release -sc) partner" -y
sudo add-apt-repository ppa:atareao/telegram -y
sudo add-apt-repository ppa:atareao/atareao -y

sudo add-apt-repository ppa:nemh/systemback -y
sudo add-apt-repository ppa:gerardpuig/ppa -y
sudo add-apt-repository ppa:haecker-felix/gradio-daily -y

После того как необходимые репозитории добавлены (повторюсь, у вас могут быть свои репозитории, у меня пример), необходимо обновить систему:

Строка с описанием:

# Обновление системы после подключения репозиториев

И команда на выполнение:

sudo apt update

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

# Установка программ

Для установки программ достаточно один раз ввести команду sudo apt install , а затем через пробел в данную строку добавлять сколько угодно программ, главное чтобы они были правильно составлены. Если какая-то программа состоит из нескольких слов, её команда должна быть монолитной, т.е. все слова в ней должны вводится через чёрточку, например: unity-tweak-tool :

sudo apt install my-weather-indicator telegram skype lm-sensors hddtemp psensor gdebi systemback unity-tweak-tool ubuntu-cleaner gradio -y

Установка дополнительных кодеков

# Мультимедиа и кодеки

sudo apt install ubuntu-restricted-extras -y

Отключение о сбоях в системе

# Отключить отчёты о сбоях в системе

sudo sed -i "s/enabled=1/enabled=0/g" "/etc/default/apport"

Ну вот, пожалуй, и всё. Данный созданный файл сценария должен выглядеть следующим образом:


Необходимо сохранить его (нажать кнопку Сохранить ) и дать Имя с расширением .sh . Я назвал его Настройка\ Ubuntu.sh (вы можете назвать по-другому, но обязвтельно с расширением.sh):


Делаем созданный скрипт исполняемым:

sudo chmod +x Настройка\ Ubuntu.sh

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

Примечание . Обратный слэш в команде Настройка\ Ubuntu.sh экранирует пробел в названии файла для терминала между двумя отдельными словами.

После того как скрипт будет выполнен, хранить его на будущее, для возможной переустановки системы и повторной настройки, лучше всего на отдельном разделе ж/диска в папке /home . Если таковой нет, то в облачном сервисе (Облачное хранилище данных) типа: DropBox, Облако Mail.Ru, Mega.co и т.п., чтобы в любой момент воспользоваться скриптом самому, либо помочь знакомым или родственникам в настройке системы.

Командная строка и те невообразимые вещи, которые с ее помощью можно творить, - визитная карточка UNIX и всех ее наследников. А где есть командная строка, там есть скрипты. И сегодня... нет, мы не будем учиться писать скрипты, мы рассмотрим наиболее полезные из них, те, что ты сможешь применять ежедневно для решения самого разного круга задач, начиная от сводки погоды и веб-сервера в одну строку и заканчивая ботом для твиттера в десять строк и скриптом для автоматического запуска любого торрент-клиента.

Сразу оговорюсь, что я вовсе не приверженец шаманизма и ни в коем случае не призываю тебя сидеть в зелено-черной консоли и набирать кучу букв, чтобы выполнить действия, для которых в графическом интерфейсе достаточно навести мышку на нужный элемент. Однако я убежден, что для решения многих задач консоль и скрипты годятся гораздо лучше графического интерфейса и поэтому пренебрегать ими никак нельзя. Тем более что любая DE позволяет создать для скрипта иконку, так что для его запуска даже не надо будет открывать консоль.

Простые примеры

Итак, не разглагольствуя понапрасну, сразу перейдем к примерам:

$ curl ifconfig.co

Эта простая команда покажет тебе внешний IP - идеальный вариант, если в Сеть ты ходишь через роутер. Все, что она делает, - просто обращается к серверу ifconfig.co, который возвращает обратно IP-шник одной строкой вместо полноценной веб-страницы.

И да, это вовсе не скрипт, это просто команда, но, чтобы превратить команду в скрипт, достаточно поместить ее в текстовый файл и первой строкой добавить так называемый шебанг, то есть символы #!, за которыми следует имя командного интерпретатора:

$ chmod +x ~/bin/myip.sh

Теперь его можно вызывать из командной строки командой myip.sh.

#!/bin/sh curl -4 wttr.in/Moscow

Этот скрипт позволяет получить сводку погоды на четыре дня. Принцип тут такой же, как в случае с ifconfig.co.

Сводка погоды в консоли #!/bin/sh dig +short txt $1.wp.dg.cx

А так можно получить краткое описание чего-либо в Википедии, причем с помощью DNS-запроса вместо обращения к веб-серверу. Кстати, веб-сервер через командную строку тоже очень легко создать:

#!/bin/sh while (nc -l 80 < file.html > :) ; do: ; done

Данный скрипт основан на утилите netcat (nc), которую называют швейцарским армейским ножом для сетевых операций. Скрипт запускает цикл, выполняющий команду nc, которая слушает 80-й порт и в ответ на запрос отдает file.html , отправляя переданный запрос в никуда (символ означает noop, то есть пустую операцию).

С помощью простых скриптов и команд можно запросто слушать интернет-радио:

#!/bin/sh mpv --volume=50 -playlist ~/16bit.fm_128.m3u

Естественно, плей-лист в формате M3U необходимо заранее скачать с сайта радиостанции. Кстати, если запустить MPlayer с аргументом --input-ipc-server=/tmp/mpvsocket , им можно будет управлять, записывая команды в файл. Например, настроить громкость:

Echo "volume +10" | socat - /tmp/mpvsocket

Создай два скрипта: один для запуска, другой для остановки радио (со строкой killall mpv), повесь их на рабочий стол и настрой горячие клавиши DE на управление воспроизведением. Вуаля, у тебя готов плеер для интернет-радио, запустить который можно, просто кликнув по иконке на рабочем столе. И он почти не будет расходовать память или занимать трей.

Но отвлечемся от сетевых операций и вернемся к локальным делам.

#!/bin/sh tar -czf "../${PWD##*/}.tar.gz" .

Это один из моих любимых скриптов. Он создает архив tar.gz текущего каталога. Особого внимания здесь заслуживает конструкция ${PWD##*/} , которая берет полный путь до текущего каталога (переменная $PWD) и удаляет из него первую часть вплоть до последнего слеша, оставляя, таким образом, только имя самого каталога. Далее к нему добавляется расширение tar.gz. Более подробно о таких конструкциях ты можешь прочитать в man bash.

#!/bin/sh while true; do inotifywait -r -e MODIFY КАТАЛОГ && ТВОЯ_КОМАНДА done

А это уже скрипт, который запускает команду в ответ на изменение файлов в каталоге. Ее можно использовать для множества разных целей, например для автоматического включения плеера при сохранении MP3-файла. Или просто выводить уведомление на десктоп, используя в качестве команды notify-send:

Notify-send "Файл изменен"

Десктоп

Раз уж мы заговорили о десктопе, то продолжим. Как и консоль, его тоже можно заскриптовать. Вот, например, скрипт, загружающий случайные обои, опубликованные на reddit-канале wallpaper:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «сайт», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!

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

Как это все работает:

первая строка нашего скрипта #!/bin/bash крайне необходима, для того, чтобы наш скрипт успешно выполнился.

вторая строка mkdir testdir создает каталог testdir

третья строка cd testdir позволяет перейти в созданный каталог testdir

команда touch в следующей строке touch file1 file2 file3 создает три файла

и последняя команда в строке нашего скрипта ls -al позволяет вывести на экран содержимое текущего каталога, в котором, благодаря предыдущей строке, появилось три пустых файла.

Как мы видим, в нашем простом скрипте все команды начинаются с новой строки. Каждая строка при запуске скрипта, последовательно выполняет свою работу, совершая те или иные действия.

Если вы ежедневно выполняете цепочку каких-либо одинаковых команд (с постоянными параметрами) в Linux, то возможно вам имеет смысл написать такой же простой скрипт на bash , который позволит вам сэкономить ваше время и автоматизировать вашу работу.

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

Возможно пойти еще дальше и распланировать машинальное выполнение script-a. В случае, если вы уже более опытный user, то, скорее всего, довольно часто проделываете разные цели через terminal. Это только пример и таких действий очень много, даже взять резервное копирование и загрузку скопированных файлов на удаленный сервер. Зачастую встречаются задачи, для которых нужно выполнять несколько команд по очереди, например, для обновления системы необходимо сначала выполнить обновление репозиториев, а уже затем скачать новые версии пакетов.

Это такая командная оболочка, где вы имеете возможность производить разные команды, которые начнут на высокой скорости и плодотворно осуществлять разные работы. Абсолютно вся мощь ОС linux в применении терминала. Поэтому, чтобы не набирать одни и те же команды несколько раз можно использовать скрипты. Это очень удобно, вы просто объединяете несколько команд, которые осуществляют некоторое воздействие, а затем выполняете их одной и той же командой или даже с помощью ярлычка. Для операционной системы linux было создано много скриптов, которые исполняются в разнообразных командных оболочках. Ну в принципе, вы очевидно это уже понимаете.

Операционная система считает исполняемыми только те файлы, которым присвоена характеристика исполняемости. А уже интерпретатор произносит подряд строку за строкой и исполняет все директивы, которые присутствуют в файле. Но если для них поставлен характеристика исполняемости, то для их запуска используется специализированная компьютерная программа — интерпретатор, в частности, оболочка bash. Мы можем запустить его как любую прочую програмку используя терминальный сервер или же выполнить оболочку и сообщить ей какой файл нужно выполнять.

В этом случае не нужно даже флага исполняемости. Взамен подобного, применяются сигнатуры начала файла и специальные флаги. У нас есть несколько различающихся методов произвести включение script-a в ОС Linux. В ОС Linux практически не применяется расширение файла для определения его вида на системном уровне. Это могут делать файловые менеджеры и то не всегда. Операционная система считает исполняемыми только те файлы, которым присвоена характеристика исполняемости. Это обыкновенные файлы, которые содержат в себе текст.

Bash скрипты Linux для чайников

Конструкцию bash допускается описать в 7 обязательствах подобным типом: «вызов командного интерпретатора - тело bash скрипта - окончание скрипта». Сочиняются скрипты с поддержкой различного текстового редактора, хранятся они как текстовые компьютерные данные. Но, чтобы было комфортнее, я храню их в совокупности с расширением «*.sh». Но давайте поглядим на все это на образце определенной цели. Есть использование, которое нужно запускать с достаточно большим комплектом характеристик. Стартовать потребуется зачастую, а каждый раз вводить эти характеристики лень. Чтоб являлось определеннее, поглядим, как выглядит это воздействие:

/home/Admin/soft/sgconf/sgconf -s 10.10.10.1 -p 5555 -a Admin -w 112233 -u user -c 100

Для этого script-a давайте использовать интерпретатор bash. Первостепенным процессом нам с вами необходим вызов интерпретатора. Открываем текстовый редактор и пишем код.

Добавим эту операцию с учетом введенных переменных:

/home/Admin/soft/sgconf/sgconf -s 10.10.10.1 -p 5555 -a Admin -w 112233 -u $user -c $cash

Текст, который будем вносить в логи будет таким:text=»Баланс пользователя «user» пополнен на «cash» рублей в time»

Аргумент text варьируется в связи от переменных user, cash и time

if [ -e /home/Admin/scripts/sgconf/sgconf.log] then echo text >> /home/Admin/scripts/sgconf/sgconf.log else echo text > /home/Admin/scripts/sgconf/sgconf.logfi

Теперь, когда нам нужно положить кому-нибудь денежку, мы запускаем скрипт командой «sh sgconf.sh», вводим имя плательщика и сумму платежа. Никаких длинных строчек, никакой головной боли с постоянным вводом одних и тех же значений.

Создать bash скрипт в ОС Linux

Для сочинения бесхитростного script-a на bash, нам понадобится произвести такие обыкновенные процедуры. Создадим в командной строчке Linux бессодержательный файл (именуем его для образца firstscript) и раскроем его на редактирование в любимом текстовом редакторе (vi/vim, nano, gedit и так далее). Для разработки скрипта не понадобится много напряжений, но чтобы набросать сценарий (программу), то понадобится изучать вспомогательную различную литературу. Мы опишем наиболее базу написания скриптов, таким образом приступаем, но если вы не знаете что такое терминал и как им использовать то вам сюда. В самом старте для того чтобы писать bash нам нужно создать каталог для наших скриптов и файл куда мы будем все писать, для этого раскрываем терминал и создаем каталог.

Переключаемся в только-что созданную директорию

И создаем файл

sudo gedit script.sh

В моем примере я создам скрипт обновления системы, запишу в этот файл. у нас откроется текстовый редактор gedit, я люблю больше vim, но у вас он больше всего не будет общепринят, поэтому показываю на стандартном.

sudo apt update;sudo apt full-upgrade;

Сделать файл скрипта исполняемым (если он еще таковым не является). Запускать скрипты sh из командной строки легко. Запустить bash скрипт linux.

chmod +x script.sh

Запускаем скрипт, просто указав путь до него:

path/to/script.sh

Если скрипт находится в текущей директории, то нужно указать./ перед именем файла скрипта:

Иногда требуются права суперпользователя для запуска скрипта, тогда просто перед скриптом пишем команду sudo:

sudo./script.shsudo path/to/script.sh

Можно конечно стартовать script, напрямую предписывая интерпретатор: sh, bash и прочие:

bash script.shsh path/to/script.sh

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