Все, что вам нужно знать, чтобы начать писать программы на Bash

Категория: линукс

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

Сценарии Bash пригодны для автоматизации задач и отлично подходят для создания простых приложений командной строки.

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

Знание сценариев Bash обязательно для каждого разработчика, особенно если вы работаете с системами на основе Unix.

Переменные в Bash

Переменные Bash чувствительны к регистру. Чтобы объявить переменные, используйте знак равенства (=) с именем слева и значением справа:

STATE=Washington

Значение, которое присваивается переменной STATE, представляет собой одно слово. Если вам нужны пробелы в вашем значении, используйте кавычки вокруг него:

STATE="North Arizona"

Для обращения к переменным в других переменных или выражениях вам нужно использовать знак доллара ($) перед именем:

STATE=Washington
LOCATION="My Location is $STATE"

Печать значений в Bash

Есть несколько способов печати переменных в Bash. Вы можете использовать команду echo для базового вывода или команду форматирования строк printf в стиле C для форматирования строк.

STATE=Washington
LOCATION="My Location is $STATE"
echo $LOCATION

После объявления переменной STATE этот сценарий определяет LOCATION, обращаясь к STATE. Затем он использует echo, чтобы вывести конечное значение переменной LOCATION.

Ключевое слово printf позволяет использовать глаголы форматирования для вывода данных. Глаголы форматирования строк аналогичны тем, что используются в языках C и Go, но с ограниченным количеством глаголов.

Команда Функциональность
%c выводит отдельные символы
%o выводит восьмеричные числа
%s выводит строки, независимо от регистра
%x выводит строчные шестнадцатеричные числа
%X выводит заглавные шестнадцатеричные числа
%d выводит целые числа
%e выводит числа в научной нотации в нижнем регистре
%E выводит числа в научной нотации в верхнем регистре
%f выводит числа с плавающей точкой
%% выводит одиночный знак процента.

Вот пример использования глагола с ключевым словом printf:

STATE=Lagos
printf "My Location is %s" $STATE

Функция printf заменит переменную STATE на место глагола %s, и вывод будет "My Location is Lagos".

Комментарии в Bash

Вы можете добавлять комментарии в Bash с помощью символа решетки (#). Оболочка автоматически игнорирует комментарии.

#!/bin/bash
# STATE=Washington
# LOCATION="My Location is $STATE"

В Bash нет многострочных комментариев. В большинстве сред разработки и текстовых редакторов можно использовать сочетание клавиш Ctrl/Command + слэш (/) для добавления нескольких однострочных комментариев. Вы должны быть в состоянии использовать это сочетание клавиш для создания нескольких однострочных комментариев.

Получение ввода пользователя в Bash

Как и во многих других языках программирования, в Bash можно получать ввод пользователя для создания более интерактивных программ/сценариев. Для запроса ввода пользователя вы можете использовать команду read.

read response

В этом случае переменная response будет содержать ввод пользователя по доставке.

echo "Что вы хотите ?: "
read response
echo $response

Запрос ввода пользователя будет на новой строке в приведенном выше примере. Вы можете добавить флаг -n к оператору echo для сохранения строки, где пользователь вводит данные.

echo -n "Что вы хотите."
read response
echo $response

Объявление массивов в Bash

Массивы в Bash аналогичны многим другим языкам. Вы можете объявить массив в Bash, указав элементы в круглых скобках.

Countries=('USA' 'Ukraine' 'England' 'Taiwan' 'China')

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

echo ${Countries[*]}

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

echo "${Countries[4]}"

Условные операторы в Bash

Bash предоставляет условия для принятия решений в программах.

Вот анатомия оператора if-else в Bash. Вы должны использовать точку с запятой для указания конца условия.

if [[ условие ]]; then
echo statement1
elif [[ условие ]]; then
echo statement2
else [[ условие ]]; then
echo statement3
fi

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

if [ 1 == 2 ]; then
echo one
elif [ 2 == 3 ]; then # иначе-если
echo two
else [ 4 > 3 ];
echo "правильно, 3"
fi

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

CITY=Lagos

case $CITY in

"Washington") # шаблон
echo "Соединенные Штаты Америки" # оператор
;; # конец случая

"Lagos" | "Abuja")
echo "Нигерия"
;;

"Johannesburg" | "Cape Town")
echo "Южная Африка"
;;

*) # шаблон по умолчанию
echo "Антарктида" # оператор по умолчанию
;;
esac # конец оператора

Вы можете определить случай по умолчанию, используя символ астериска (*) в качестве шаблона. Операторы case должны заканчиваться ключевым словом esac.

Циклы в Bash

В зависимости от ваших потребностей вы можете использовать цикл while, диапазонный цикл for или цикл for в стиле C для повторяющихся операций.

Вот пример цикла for в стиле C. Циклы for должны заканчиваться ключевым словом done, и вы должны завершить оператор for точкой с запятой, за которой следует ключевое слово do.

for ((a = 0 ; a < 10 ; a+2)); do
echo $a
done

Диапазонный цикл for пригоден для работы с файлами и многими другими операциями. Вам нужно использовать ключевое слово in с диапазонным циклом for.

for i in {1..7}; do
echo $1
done

Вот простой бесконечный цикл для демонстрации работы циклов while в Bash.

name=1
while [ 1 -le 5 ] # пока 1 < 5
do
echo $name
done

В условном операторе -le в условии является двоичным оператором "меньше".

Функции в Bash

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

print_working_directory() {
echo $PWD #вызов команды PWD из сценария
}

echo "Вы находитесь в $(print_working_directory)"

Функции могут возвращать переменные в Bash. Вам нужно всего лишь ключевое слово return.

print_working_directory() {
return $PWD
}

Функция print_working_directory возвращает рабочий каталог файла.

Вы можете писать сценарии оболочки на других языках

Bash - не единственный язык, который вы можете использовать для взаимодействия с оболочкой вашей операционной системы или создания приложений командной строки. Вы можете использовать множество других языков, таких как Go, Python, Ruby и Rust.

У многих операционных систем предустановлен Python3, и Python - распространенный язык. Если вам нужна даже большая функциональность, чем могут предложить сценарии Bash, рассмотрите возможность использования Python.





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

 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2024