Bash je nejrozšířenější shell na Linuxu a základní nástroj každého administrátora. Tento průvodce vás provede od prvního skriptu až po pokročilé techniky.
Proč se učit Bash?¶
Bash je výchozí shell na většině linuxových distribucí. Je dostupný prakticky všude — od serverů přes kontejnery až po CI/CD pipeline. Znalost Bashe znamená schopnost automatizovat cokoliv na příkazové řádce.
Na rozdíl od Pythonu je Bash přímo napojený na systém. Spouštění příkazů, práce se soubory a propojování nástrojů je přirozené a rychlé.
První skript¶
Každý Bash skript začíná shebangem:
!/bin/bash¶
echo “Ahoj, světe!” chmod +x skript.sh ./skript.sh
Proměnné¶
NAME=”server01” echo “Hostname: $NAME” echo “Počet CPU: $(nproc)”
- Lokální proměnné — platí v aktuálním shellu
- Exportované — dostupné v podprocesech (export VAR=value)
- Speciální — $?, $#, $@, $0, $$
Podmínky¶
if [ -f “/etc/nginx/nginx.conf” ]; then echo “Nginx je nainstalován” else echo “Nginx nenalezen” fi if [[ “$OS” == “Linux” && -d “/proc” ]]; then echo “Jsme na Linuxu” fi
Cykly¶
for f in /var/log/*.log; do echo “Zpracovávám: $f” wc -l “$f” done count=0 while [ $count -lt 5 ]; do echo “Iterace: $count” ((count++)) done
Funkce¶
backup_dir() { local src=”$1” local dest=”$2” local date=$(date +%Y%m%d) tar czf “${dest}/backup-${date}.tar.gz” “$src” } backup_dir /etc /tmp
Error handling¶
set -euo pipefail trap ‘echo “Chyba na řádku $LINENO”; exit 1’ ERR die() { echo “FATAL: $*” >&2; exit 1; } [ -f “$CONFIG” ] || die “Konfigurační soubor nenalezen”
- Vždy set -euo pipefail
- Uvozovky: “$var”
- shellcheck pro statickou analýzu
- Pro 100+ řádků zvažte Python
Bash je základ¶
Bash scripting je nezbytná dovednost. Začněte jednoduše, používejte shellcheck a postupně přidávejte složitost.