Skriptování Bash je jedním z nejpopulárnějších a přístupných způsobů programování vašeho počítače se systémem Linux. Tyto jednoduché příklady skriptů vám pomohou pochopit proces a seznámí vás se základy programování Bash.
Table of Contents
1. Jak tisknout Hello World v Bash
Příklad Hello World je skvělý způsob, jak se naučit jakýkoli programovací jazyk a Bash není výjimkou.
Zde je návod, jak vytisknout „Hello World“ pomocí Bash:
#!/bin/bash
Příkaz Shebang (#!/bin/bash) je nezbytný, protože jej shell používá k rozhodnutí, jak skript spustit. V tomto případě používá interpret Bash.
echo "Hello World"
chmod +x hello_world.sh
./hello_world.sh
2. Vytvořte adresář čtením vstupu
Z vašich skriptů můžete spouštět jakýkoli program, který byste normálně spouštěli na příkazovém řádku. Můžete například vytvořit nový adresář ze skriptu pomocí příkazu mkdir.
#!/bin/bash
echo "Enter new directory name:"
read newdir
mkdir $newdir
3. Vytvořte adresář pomocí argumentů příkazového řádku
Jako alternativu k interaktivnímu čtení vstupu podporuje většina příkazů Linuxu argumenty. Při spuštění programu můžete zadat argument, abyste řídili jeho chování.
Ve skriptu můžete použít $1 k odkazování na speciální proměnnou, která obsahuje hodnotu prvního argumentu. $2 bude odkazovat na druhý argument a tak dále.
#!/bin/bash
mkdir $1
./arg_dir.sh Test
Možná se ptáte, co se stane, když skript spustíte bez zadání argumentu. Zkuste to a uvidíte; měli byste obdržet chybovou zprávu, která začíná „usage: mkdir“:
Bez jakýchkoli argumentů příkazového řádku bude hodnota $1 prázdná. Když váš skript volá mkdir, nepředá mu argument a příkaz mkdir vrátí tuto chybu. Abyste tomu zabránili, můžete sami zkontrolovat stav a prezentovat přívětivější chybu:
#!/bin/bash
if ["$1" = ""]; then
echo "Please provide a new directory name as the first argument"
exit
fi
mkdir $1
Při spuštění této nové verze skriptu se zobrazí zpráva, pokud zapomenete uvést argument:
4. Odstraňte soubor pomocí funkce Bash
Pokud zjistíte, že opakujete stejný kód, zvažte jeho zabalení do funkce. Tuto funkci pak můžete volat, kdykoli budete potřebovat.
Zde je příklad funkce, která smaže daný soubor.
#!/bin/bash
del_file() {
echo "deleting $1"
rm $1
}
Poté můžete funkci zavolat a předat jí název souboru, který chcete odstranit:
del_file test.txt
Když zavoláte funkci, nastaví speciální $? hodnotu se stavem ukončení posledního spuštěného příkazu. Stav ukončení je užitečný pro kontrolu chyb; v tomto příkladu můžete otestovat, zda byl příkaz rm úspěšný:
if [ $? -ne 0 ]; then
echo "Sorry, could not delete the file"
fi
5. Vytvořte základní kalkulačku pro aritmetické výpočty
Tento poslední příklad ukazuje velmi základní kalkulačku. Když jej spustíte, zadáte dvě hodnoty a poté vyberete aritmetickou operaci, která se s nimi provede.
Zde je kód pro calc.sh:
#!/bin/bash
echo "Enter first number: "
read aecho "Enter second number: "
read b
echo "Enter Arithmetic Operation Choice :"
echo "1. Addition"
echo "2. Subtraction"
echo "3. Multiplication"
echo "4. Division"
read choice
case $choice in
1)
result=`echo $a + $b | bc`
;;2)
result=`echo $a - $b | bc`
;;3)
result=`echo $a \* $b | bc`
;;4)
result=`echo "scale=2; $a / $b" | bc`
;;
esacecho "Result: $result"
Všimněte si použití case … esac, což je Bashův ekvivalent příkazu switch z jiných jazyků. Umožňuje vám otestovat hodnotu – v tomto případě proměnnou volby – proti několika pevným hodnotám a spustit související kód.
Tento skript používá k provedení každého výpočtu příkaz bc.