9. Bash skriptování
Co se po vás bude chtít?
Shell a Bash
-
Porozumění pojmům:
- Co je shell a k čemu slouží
- Co je Bash (Bourne Again Shell)
- Rozdíl mezi různými shelly (bash, zsh, fish, dash)
-
Práce se shelly:
- Zjištění dostupných shellů na systému (
/etc/shells) - Zjištění aktuálního shellu (
$SHELL) - Změna výchozího shellu (
chsh)
- Zjištění dostupných shellů na systému (
Tvorba a spouštění skriptů
-
Vytvoření skriptu:
- Vytvoření souboru s příponou
.sh - Význam a použití shebangu (
#!/bin/bash) - Nastavení oprávnění pro spuštění (
chmod +x)
- Vytvoření souboru s příponou
-
Spuštění skriptu:
- Spuštění pomocí
./skript.sh - Spuštění pomocí
bash skript.sh
- Spuštění pomocí
Proměnné
-
Práce s proměnnými:
- Deklarace proměnné (bez
$) - Čtení proměnné (s
$) - Konvence pojmenování (velká písmena)
- Deklarace proměnné (bez
-
Environment proměnné:
- Znalost základních proměnných (
$HOME,$USER,$PWD,$PATH,$SHELL) - Proměnná
$?pro návratový kód
- Znalost základních proměnných (
Uživatelský vstup
-
Argumenty skriptu:
- Přístup k argumentům (
$1,$2, …,$n) - Název skriptu (
$0) - Počet argumentů (
$#) - Všechny argumenty (
$@,$*)
- Přístup k argumentům (
-
Interaktivní vstup:
- Použití příkazu
readpro vstup od uživatele
- Použití příkazu
Podmínky
-
Syntaxe podmínek:
- Struktura
if/then/else/fi - Použití
elifpro více podmínek
- Struktura
-
Operátory pro čísla:
-eq,-ne,-gt,-lt,-ge,-le
-
Operátory pro textové řetězce:
==,!=,-z,-n
-
Operátory pro soubory:
-e(existuje),-f(soubor),-d(adresář)-r,-w,-x(oprávnění)
Cykly
-
While cyklus:
- Syntaxe
while/do/done - Použití pro opakování dokud platí podmínka
- Syntaxe
-
For cyklus:
- Procházení seznamu hodnot
- Procházení souborů
- Použití rozsahu
{1..10}
Funkce
- Práce s funkcemi:
- Deklarace funkce
- Volání funkce
- Předávání parametrů do funkce
Návratové hodnoty
- Exit kódy:
- Význam návratových hodnot (0 = úspěch, jiné = chyba)
- Nastavení exit kódu pomocí
exit - Zjištění návratového kódu (
$?)
Logické operátory a řetězení příkazů
- Operátory:
- AND (
&&) - spustí další příkaz jen při úspěchu - OR (
||) - spustí další příkaz jen při neúspěchu - Středník (
;) - spustí příkazy nezávisle na výsledku
- AND (
Další dovednosti
-
Komentáře:
- Jednořádkové komentáře (
#)
- Jednořádkové komentáře (
-
Práce se soubory:
- Čtení souboru ve skriptu
- Zápis do souboru (
>,>>)
-
Aritmetické operace:
- Způsoby výpočtu (
$(()),let)
- Způsoby výpočtu (
-
Command substitution:
- Vložení výstupu příkazu do proměnné (
$(command))
- Vložení výstupu příkazu do proměnné (
Praktické dovednosti
- Schopnost vytvoření jednoduchého skriptu podle zadání
- Porozumění existujícímu skriptu
- Úprava existujícího skriptu
Odkazy na zdroje informací
- ČVUT - Podklady pro výuku OS
- LinuxExpress - První skript
- ABCLinuxu - Seriál Shell Bash
- Bash Reference Manual - Oficiální dokumentace
Připrav se na HAXAGONu
Linux - pokročilý:
- Bash scripting - intro