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)

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)
  • Spuštění skriptu:

    • Spuštění pomocí ./skript.sh
    • Spuštění pomocí bash skript.sh

Proměnné

  • Práce s proměnnými:

    • Deklarace proměnné (bez $)
    • Čtení proměnné (s $)
    • Konvence pojmenování (velká písmena)
  • Environment proměnné:

    • Znalost základních proměnných ($HOME, $USER, $PWD, $PATH, $SHELL)
    • Proměnná $? pro návratový kód

Uživatelský vstup

  • Argumenty skriptu:

    • Přístup k argumentům ($1, $2, …, $n)
    • Název skriptu ($0)
    • Počet argumentů ($#)
    • Všechny argumenty ($@, $*)
  • Interaktivní vstup:

    • Použití příkazu read pro vstup od uživatele

Podmínky

  • Syntaxe podmínek:

    • Struktura if/then/else/fi
    • Použití elif pro více podmínek
  • 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
  • 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

Další dovednosti

  • 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)
  • Command substitution:

    • Vložení výstupu příkazu do proměnné ($(command))

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í

Připrav se na HAXAGONu

Linux - pokročilý:

  • Bash scripting - intro