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.