Jak psát Bash skripty pro automatizaci Linuxu

Photo of author

By etechblogcz

Úvod do skriptování v Bash

Skriptování v Bash představuje cennou dovednost pro každého uživatele Linuxu. I začátečníci mohou díky této znalosti plně využít potenciál svého systému a ušetřit si manuální práci. V tomto článku vás seznámíme s tvorbou bash skriptů pro automatizaci úloh v Linuxu. Probereme základy skriptování v shellu Bash, strukturu skriptu, způsoby jeho spouštění, význam shebangů a další důležité aspekty.

Druhy skriptů

Setkáváme se s různými typy skriptů, především s příponami .sh a .bash. Tyto přípony jsou klíčové, neboť určují, jaký interpret se má použít ke spuštění skriptu. Soubory s příponou .sh jsou obecně spustitelné v různých prostředích, nejen v Bash. Skript napsaný pro Bash na Linuxu tak může fungovat i na systémech Mac, BSD a dalších, které používají kompatibilní shelly.

Skripty s příponou .bash jsou naopak primárně určeny pro spouštění výhradně v prostředí Bash. Takový skript nebude funkční například v prostředí Fish, ani v jiných alternativních shellech.

Shebang – co to je?

Některé skripty se obejdou bez přípon souborů a místo toho používají takzvaný shebang, který interpretovi signalizuje typ skriptu a způsob jeho spuštění. Shebang se vždy umisťuje na první řádek skriptu. Pokud shebang chybí, skript se často nespustí, obzvláště pokud nemá žádnou příponu.

O shebangu se dá dozvědět mnoho, ale pro začátečníky to není nezbytné. Nejvíce se využije u pokročilých uživatelů, kteří vytvářejí komplexní bash nástroje. Pro začátečníky postačí znalost standardního shebangu: #!/bin/bash

Jak se tvoří Bash skript

Mnoho začátečníků si plete skriptování v Bash s programováním. Hlavním účelem bash skriptů je seskupovat příkazy dohromady a provádět složité operace bez nutnosti manuálního zadávání každého příkazu do terminálu. Pokud se chystáte vytvářet složitější aplikace v Bash, zvažte raději použití skutečného programovacího jazyka, například Python.

Začněte otevřením terminálu a zadejte příkaz:

nano myfirstbashscript

Tímto otevřete textový editor Nano. Do něj vložte shebang, který interpretovi řekne, jak se má skriptem zacházet:

#!/bin/bash

Od této chvíle můžete přidávat libovolné příkazy. Například, uživatel Ubuntu může vytvořit jednoduchý skript pro aktualizaci systému přidáním těchto řádků:

sudo apt update;sudo apt upgrade -y

Jiný příklad: Vytvořte skript pro nepřetržité pingování, který poběží na pozadí, pokud máte problémy s rychlostí sítě:

ping google.com

Do skriptu můžete přidat libovolné příkazy, které potřebujete. Nebojte se experimentovat!

Po přidání příkazů do skriptu, uložte jej pomocí klávesové zkratky CTRL + O.

Nyní je potřeba aktualizovat oprávnění skriptu. V terminálu zadejte:

sudo chmod +x myfirstbashscript

Spouštění skriptů

Skripty se spouští v terminálu různými způsoby. Pro spuštění shell skriptu použijte:

sudo sh script.sh

Pro spuštění bash skriptu použijte:

sudo bash script.bash

Alternativně lze jakýkoliv skript spustit pomocí ./nazev_souboru, bez ohledu na jeho příponu.

Všechny tyto metody fungují, avšak použití ./nazev_souboru je nejméně spolehlivé, pokud skript nemá nastavena správná oprávnění. Ty se nastavují příkazem:

sudo chmod +x script

Vytvoření binárního skriptu

Pokud chcete skript spouštět pouhým zadáním jeho názvu do terminálu, musíte z něj udělat binární soubor. Nejprve skript nastavte jako spustitelný pomocí příkazu chmod:

sudo chmod +x

Jakmile je skript označen jako spustitelný, je třeba jej přesunout do místa, které je součástí uživatelské cesty. Použijte příkaz MV. Alternativně můžete použít příkaz CP, pokud si chcete ponechat kopii skriptu v původním umístění.

sudo mv /umístění/skriptu /usr/bin/

nebo

sudo cp /umístění/skriptu /usr/bin/

Nyní můžete skript spustit odkudkoliv zadáním jeho názvu do terminálu. Například pokud jste si vytvořili skript pro automatické stahování videí z YouTube, který jste nazvali youtubescript a umístili jste ho do složky /usr/bin/, stačí v terminálu napsat:

youtubescript

A to je vše!

Závěr

Znalost skriptování v Bash je velmi užitečná dovednost. Bez ní by se správci systému a nadšenci do terminálu mohli ocitnout v nekonečné smyčce manuální práce. Díky bash skriptům můžete automatizovat mnoho úkolů v Linuxu. Naučte se využívat potenciál Bashe a vytvářejte skripty, které za vás rychle vykonají složité operace.

Shell je fascinující nástroj. Čím více se o něm naučíte, tím lépe pochopíte fungování vašeho Linuxového systému, a jak ho můžete zefektivnit a automatizovat. S Bashem máte neomezené možnosti, stačí trocha kreativity.