Bash skripty se hodí pro automatizaci úloh a zjistíte, že jsou skvělé pro vytváření jednoduchých aplikací příkazového řádku. Prostředí Bash interpretuje skripty Bash, takže k jejich psaní a spouštění nebudete muset instalovat žádné závislosti. Bash skripty jsou také přenosné, protože většina operačních systémů založených na Unixu používá stejný interpret shellu.

Znalost skriptování v Bash je nutností pro každého vývojáře, zvláště pokud pracujete se systémy založenými na Unixu.

Proměnné v Bash

Bash proměnné rozlišují velká a malá písmena. Chcete-li deklarovat proměnné, použijte znaménko rovná se (=) s názvem vlevo a hodnotou vpravo:

STÁT=Washington

Hodnota, kterou tato deklarace přiřadí STÁT je jediné slovo. Pokud potřebujete ve své hodnotě mezery, použijte kolem ní uvozovky:

STATE="Severní Arizona"

Budete muset použít znak dolaru ($) předpona k referenčním proměnným v jiných proměnných nebo příkazech:

STÁT=Washington
LOCATION="Moje poloha je $STATE"

Tisk hodnot v Bash

Existuje několik způsobů, jak můžete tisknout proměnné v Bash. Můžete použít

echo příkaz pro základní výstup nebo styl C printf příkaz pro formátování řetězce.

STÁT=Washington
LOCATION="Moje poloha je $STATE"
echo$LOCATION

Po vyhlášení STÁT proměnná, definuje tento skript UMÍSTĚNÍ odkazem na STATE. If pak použije echo k vytištění konečné hodnoty proměnné LOCATION.

The printf klíčové slovo vám umožňuje používat formátovací slovesa pro výstup dat. Slovesa pro formátování řetězce jsou podobná těm v C a Go, ale s omezeným počtem sloves.

Sloveso Funkčnost
%C vytiskne jednotlivé znaky
vytiskne osmičkové soustavy
%s tiskne řetězce nezávisle na velikosti písmen
%X vytiskne malá hexadecimální čísla
%X vytiskne velká hexadecimální čísla
%d tiskne celá čísla
%E vytiskne vědecký pojem plovoucí malými písmeny
%E tiskne vědecký pojem plovoucí velkými písmeny
%F vytiskne čísla s plovoucí desetinnou čárkou
%% vytiskne symbol jednoho procenta.

Zde je příklad použití slovesa s tisk klíčové slovo.

STÁT=Lagos
printf "Moje poloha je %s" $STATE

The printf funkce by nahradila STÁT variabilní v pozici %s sloveso a výstup by byl „Moje poloha je Lagos“.

V Bash můžete přidávat komentáře pomocí hash nebo libry (#) symbol. Shell automaticky ignoruje komentáře.

#!/bin/bash
# STATE=Washington
# LOCATION="Moje poloha je $STATE"

Nejsou zde žádné víceřádkové komentáře. Většina IDE a textových editorů umožňuje komentovat pomocí zkratky Ctrl/Command + lomítko (/). Měli byste být schopni použít zkratku k vytvoření více jednořádkových komentářů.

Příjem uživatelského vstupu v Bash

Stejně jako mnoho jiných programovacích jazyků můžete v Bash přijímat uživatelský vstup, aby byly vaše programy/skripty interaktivnější. Můžete použít číst příkaz k vyžádání vstupu uživatele.

číst Odezva

V tomto případě je Odezva proměnná bude obsahovat vstup uživatele při doručení.

echo "Co chceš?:"
přečíst odpověď
echo $response

Požadavek vstupu uživatele bude ve výše uvedeném příkladu na novém řádku.

Můžete přidat -n vlajka k echo print statement pro zachování řádku, kde uživatel zadává vstup.

echo -n "Co chceš."
přečíst odpověď
echo $response

Deklarace polí v Bash

Pole v Bash jsou jako většina jazyků. Proměnnou pole můžete deklarovat v Bash zadáním prvků v závorkách.

Země=('USA' 'Rusko' 'Ukrajina', "Anglie", "Tchaj-wan", "Čína")

Přístup k poli přes odkaz na název proměnné by přinesl první prvek. K celému poli můžete přistupovat pomocí znaku hvězdičky jako indexu.

echo ${Countries[*]}

Můžete také zadat index pole pro přístup k určitému prvku. Index pole začíná nulou.

echo "${Countries[4]}"

Podmíněné příkazy v Bash

Bash poskytuje podmínky pro rozhodování v programech.

Zde je anatomie příkazu if-else v Bash. K určení konce podmínky budete muset použít středník.

-li [[ podmínka ]]; pak
echo prohlášení1
elif [[podmínka]]; pak
echo prohlášení2
jiný [[podmínka]]; pak
echo prohlášení3
fi

Musíte skončit každý -li prohlášení s fi klíčové slovo.

-li [ 1 == 2 ]; pak
echo jeden
elif [ 2 == 3 ]; pak#jinak-pokud
echo dva
jiný [ 4 > 3 ];
echo "správně, 3"
fi

Ve svých programech Bash můžete použít příkazy typu case pomocí příkazu případ klíčové slovo. Před příkazem budete muset zadat vzor následovaný koncovými závorkami.

MĚSTO=Lagos
případ$CITYv
"Washington") # vzor
echo "Spojené státy americké" # tvrzení
;; # konec případu
"Lagos" | "Abuja")
echo "Nigérie"
;;
"Johannesburg" | "Kapské město")
echo "Jižní Afrika"
;;
*) # výchozí vzor
echo "Antarktida" # výchozí příkaz
;;
esac# konec případu prohlášení

Výchozí velikost písmen můžete definovat pomocí znaku hvězdička (*) jako vzoru. Výpovědi případu musí končit znakem esac klíčové slovo.

Smyčky v Bash

V závislosti na vašich potřebách můžete použít smyčku while, rozsah pro smyčku nebo styl C smyčka for pro opakované operace.

Zde je příklad stylu C for-loop. Smyčky for musí končit znakem Hotovo klíčové slovo a příkaz for musíte ukončit středníkem následovaným znakem dělat klíčové slovo.

pro ((a = 0; a < 10; a+2)); dělat
echo$a
Hotovo

Rozsah pro smyčku se hodí pro práci se soubory a mnoho dalších operací. Budete muset použít v klíčové slovo s rozsahem pro smyčku.

pro i v {1..7}; dělat
echo$1
Hotovo

Zde je jednoduchá nekonečná smyčka, která demonstruje Bash zatímco smyčky v akci.

jméno=1
zatímco [1 -le 5] # zatímco 1 < 5
dělat
echo$jméno
Hotovo

The -le v příkazu podmínky je binární operátor pro méně než.

Funkce v Bash

K deklaraci funkcí v Bash nepotřebujete klíčová slova. Funkce můžete deklarovat názvem a závorkami před tělem funkce.

tiskový_pracovní_adresář() {
echo$PWD#volání příkazu PWD ze skriptu
}
echo "Ty jsi v $(print_working_directory)"

Funkce mohou vracet proměnné v Bash. Vše, co potřebujete, je vrátit se klíčové slovo.

tiskový_pracovní_adresář() {
vrátit se$PWD
}

The tiskový_pracovní_adresář funkce vrací pracovní adresář souboru.

Shell skripty můžete psát v jiných jazycích

Bash není jediný jazyk, který můžete použít k interakci s shellem vašeho operačního systému nebo k vytváření aplikací příkazového řádku. Můžete použít mnoho dalších jazyků, jako je Go, Python, Ruby a Rust.

Mnoho operačních systémů má Python3 předinstalovaný a Python je převládající jazyk. Pokud potřebujete ještě více funkcí, než mohou nabídnout skripty Bash, zvažte použití Pythonu.