> For the complete documentation index, see [llms.txt](https://denis-3.gitbook.io/linuxguide-linux-dlya-nachinayushikh/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://denis-3.gitbook.io/linuxguide-linux-dlya-nachinayushikh/terminal-linux/bash-skripty.md).

# Bash-скрипты

Bash - интерпретатор команд Терминала. Bash-скрипты обычно используют для оптимизации каких-либо задач. Они представляют из себя файл, в котором указывается последовательность команд. Итак, первое, что должно быть в начале скрипта - шебанг (shebang). В этой строке указывается путь к интерпретатору. Глобальный - /bin/bash, пользовательский - /usr/bin/bash. Перед указанием пути к интерпретатору нужно ввести символы `#!`. Создадим файл, назовём его script и добавим права доступа на исполнение. Вставим в него шебанг и какие-нибудь простые команды. Например, `pwd` и `ls`. Их надо прописывать с новой строки. Запускаем. Работает!

<figure><img src="/files/xZlaMskHBrd3WfX6QkZ3" alt=""><figcaption></figcaption></figure>

Вообще, в этих скриптах можно прописывать и условия, и циклы, и переменные, и функции. Но в этом гайде я не буду больно углубляться в эти вещи. Потому что, с большей долей вероятности, они вам не пригодятся. А если пригодятся, то не на начальных этапах (если вы, конечно, не фанатеете от Bash). В Интернете много статей на данную тему. Расскажу только про переменные. Создать переменную просто. Синтаксис: `<имя_переменной>=<значение>`. Обращение к переменной происходит через $. *Если надо вывести знак доллара, просто добавьте к нему символ `\`.*

{% hint style="info" %}
В системе существуют системные переменные. Доступ к ним можно получить вне зависимости от сессии. Чтобы просмотреть их, введите в Терминале `printenv`. Чтобы посмотреть значение переменной, просто введите `echo $<имя_переменной>`.

<img src="/files/Fzl7orkI8aiR7KAQfuGo" alt="" data-size="original">
{% endhint %}

<figure><img src="/files/eT5Kv1lL80vlWiI3XgAs" alt=""><figcaption></figcaption></figure>

Чтобы добавить в строку вывод какой-нибудь команды, используйте `$(<команда>)`.

<figure><img src="/files/dA5W50ExkZPkrcrF3w3x" alt=""><figcaption></figcaption></figure>

Для совершения математических операций используйте `$((<операция>))`.

<figure><img src="/files/BTe9Ony9s62Qp8LPO0fq" alt=""><figcaption></figcaption></figure>

Перейдём к автоматизации задач. Каждый сам решает, что ему нужно оптимизировать в Linux. В Bash-скрипт можно добавить список команд, который нужно запускать быстро и часто. Например, обновления. Да, это можно сделать и через Центр приложений, и через Менеджер обновлений. Но это просто практическое применение скрипта. Итак, для начала создадим папку bin в домашнем каталоге пользователя. Введите `export PATH=$PATH:~/bin`. Что это такое? Когда вы вводите какую-либо команду, вы прописываете её имя (pwd, ls...). Но, по сути, это всё исполняемые файлы, находящиеся в корне. Все директории, содержащие в себе эти команды, указаны в переменной $PATH. Команда export добавит нашу новую директорию в переменную PATH, и нам не придётся открывать скрипт по пути к файлу, а лишь надо будет ввести его название. Перейдём в этот каталог и создадим скрипт под любым названием, у меня будет `u`. Вводим шебанг и команды для обновления и очистки, как на скриншоте. Сохраняем, выходим и можем попробовать запустить наш скрипт, просто введя его имя. Работает!

<div><figure><img src="/files/XpOaK3uprlfsxywFmYoY" alt=""><figcaption></figcaption></figure> <figure><img src="/files/yZbzxdwAf37ZMXRPPiHY" alt=""><figcaption></figcaption></figure></div>

Вот и всё! Возможно, в будущем у вас появятся другие рутинные задачи и вы их сможете обернуть в такой вот скрипт.
