Как да пишете Bash скриптове в Linux
В света на операционните системи Linux, познаването на Bash езика за скриптове може да бъде нещо, което разширява възможностите ви значително. Bash, съкращение от Bourne Again Shell, е стандартният интерпретатор за команден ред в много дистрибуции на Linux и Unix системи.
Създаването на Bash скриптове ви позволява да автоматизирате задачи, да управлявате файлове и процеси, както и да използвате множество други функции на вашата система.
В това ръководство ще ви представим основните понятия и техники за писане на Bash скриптове, които да ви помогнат да започнете.
1. Запознаване с Bash
Bash е програмен език за скриптове, който ви позволява да пишете последователности от команди, които да се изпълняват последователно.
Предимства на Bash скриптовете:
- Автоматизация: Повтарящи се задачи могат да се автоматизират, спестявайки време и усилия.
- Ефективност: Скриптовете могат да изпълняват множество задачи едновременно.
- Повторяемост: Скриптовете гарантират, че задачите се изпълняват последователно и по един и същ начин.
- Гъвкавост: Скриптовете могат да бъдат модифицирани и адаптирани за различни нужди.
2. Създаване на Bash скрипт
- Създайте текстов файл: Отворете текстов редактор (например nano, vim) и създайте нов файл.
- Въведете shell команди: В текстовия файл въведете shell командите, които искате да се изпълнят.
- Запазете файла: Запазете файла с разширение .sh (например script.sh).
- Направете файла изпълним: Използвайте командата
chmod +x script.sh
, за да направите файла изпълним.
Структура на Bash скрипт:
- Shebang: Първият ред е shebang, започващ с #!, последван от пътя до интерпретатора (например #!/bin/bash).
- Коментари: Коментарите започват с # и се игнорират от интерпретатора.
- Променливи: Променливите се декларират с име и стойност, разделени от знак за равенство (например var=value).
- Условни оператори: Условните оператори (if, else, elif) позволяват изпълнение на код в зависимост от условие.
- Цикли: Циклите (for, while, until) позволяват многократно изпълнение на код.
- Функции: Функциите групират код за многократна употреба.
Примерен Bash скрипт:
#!/bin/bash
# Това е коментар. Първият ред указва пътя до интерпретатора на Bash.
echo "Здравейте, приятели!"
След като сте написали скрипта, запазете го и го направете изпълним:
chmod +x my_script.sh
Сега можете да изпълните вашия скрипт:
./my_script.sh
Основен синтаксис на Bash скриптовете
1. Shebang:
Първият ред на bash скрипта е shebang, който започва с #!
и е последван от пътя до интерпретатора. Пример:
#!/bin/bash
2. Коментари:
Коментарите започват с #
и се игнорират от интерпретатора. Пример:
# Този ред е коментар
3. Променливи:
Променливите се декларират с име и стойност, разделени от знак за равенство. Пример:
var="value"
4. Условни оператори:
Условните оператори (if, else, elif) позволяват изпълнение на код в зависимост от условие. Пример:
if condition; then
# Изпълнява се код, ако условието е истина
else
# Изпълнява се код, ако условието е невярно
fi
5. Цикли:
Циклите (for, while, until) позволяват многократно изпълнение на код. Пример:
for i in $(seq 1 10); do
# Изпълнява се код за всяко число от 1 до 10
done
6. Функции:
Функциите групират код за многократна употреба. Пример:
function my_function() {
# Код, който се изпълнява, когато се извика функцията
}
7. Извиквате на функции:
Функциите се извикват с името им. Пример:
my_function
8. Запазване на скриптове:
Bash скриптовете се запазват с разширение .sh
.
9. Права за изпълнение:
За да може скриптът да се изпълни, трябва да му се дадат права за изпълнение.
10. Изпълнение на скриптове:
Скриптовете се изпълняват с командата bash
. Пример:
bash script.sh
Забележка:
- Този списък не е изчерпателен.
- За по-сложни задачи е необходимо да се запознаете с по-усъвършенствани функции на bash езика.
Още един примерен Bash скрипт:
Ето един примерен скрипт на Bash, който използва инструментите speedtest-cli
за измерване на интернет скоростта и командата ping
за измерване на пинга
#!/bin/bash
echo -e "\e[32mПроверката тече...\e[37m"
# Функция за проверка на интернет скоростта
check_speed() {
speedtest-cli --simple > speedtest_results.txt
download_speed=$(grep "Download" speedtest_results.txt | awk '{print $2}')
upload_speed=$(grep "Upload" speedtest_results.txt | awk '{print $2}')
# Оцветяване на изхода
echo -e "\e[32mChecking Internet Speed...\e[37m"
echo -e "Download Speed: \e[32m$download_speed Mbps\e[37m"
echo -e "Upload Speed: \e[32m$upload_speed Mbps\e[37m"
}
# Функция за проверка на пинг
check_ping() {
ping_result=$(ping -c 3 8.8.8.8)
ping_time=$(echo "$ping_result" | tail -n 1 | awk '{print $4}' | cut -d '/' -f 2)
# Оцветяване на изхода
echo -e "\e[32mChecking Ping...\e[37m"
echo -e "Ping: \e[32m$ping_time ms\e[37m"
}
# Извикване на функциите за проверка
check_speed
echo ""
check_ping
# ASCII Art разделител
echo -e "\e[32m---------------------------------------\e[37m"
Този скрипт извиква speedtest-cli
за измерване на интернет скоростта и използва ping
за измерване на пинга към хоста 8.8.8.8 (DNS сървър на Google). Можете да промените хоста, към който да измервате пинга, като промените IP адреса в командата ping
.
Ако speedtest-cli липсва във вашата среда , можете да го инсталирате с:
За Debian/Ubuntu базирани системи:
sudo apt-get update
sudo apt-get install speedtest-cli
Заключение
Това ръководство представи основните концепции и техники за писане на Bash скриптове в Linux. След като сте запознати с тези основи, можете да продължите да изучавате по-сложни теми като функции, обработка на стрингове и управление на процеси. Практика и експериментиране с различни комбинации от команди ще ви помогнат да станете по-удобни с писането на скриптове и да използвате пълния потенциал на Bash за автоматизация на вашите задачи в Linux.
Надяваме се, че това ръководство ще ви бъде полезно и ви пожелаваме успех във вашите първи стъпки в света на Bash скриптовете!
Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу:
Donate ☕️ Дарете с PayPalDonate 💳 Дарете с Revolut