Bash skripty lze použít k různým účelům, jako je spouštění příkazů shellu, spouštění více příkazů dohromady, přizpůsobování administrativních úloh, provádění automatizace úloh atd. Znalosti základů programování bash jsou tedy důležité pro každého uživatele Linuxu. Tento článek vám pomůže získat základní představu o programování bash. Většina běžných operací bash skriptování je zde vysvětlena na velmi jednoduchých příkladech.
V tomto článku jsou popsána následující témata programování bash.
- Ahoj světe
- Echo Command
- Komentáře
- Víceřádkový komentář
- Zatímco Loop
- Pro smyčku
- Získejte vstup od uživatele
- If prohlášení
- A prohlášení If if
- Nebo prohlášení If if
- Jinak podmínka if a else
- Stav kufru
- Získejte argumenty z příkazového řádku
- Získejte argumenty z příkazového řádku se jmény
- Zkombinujte dva řetězce v proměnné
- Získejte podřetězec řetězců
- Přidejte 2 čísla do proměnné
- Vytvořte funkci
- Použijte funkční parametry
- Předejte návratovou hodnotu ze skriptu
- Vytvořit adresář
- Vytvořte adresář kontrolou existence
- Přečíst soubor
- Odstranit soubor
- Připojit k souboru
- Vyzkoušejte, zda soubor existuje
- Odeslat e -mail Příklad
- Získejte aktuální datum analýzy
- Počkejte
- Spánek
Vytvořit a spustit první program BASH:
Skript bash můžete spustit z terminálu nebo spuštěním libovolného souboru bash. Spusťte následující příkaz z terminálu a proveďte velmi jednoduchý příkaz bash. Výstupem příkazu bude „ Ahoj světe '.
$vyhodil 'Ahoj světe'
Otevřete libovolný editor a vytvořte soubor bash. Tady, nano k vytvoření souboru se používá editor a název souboru je nastaven jako „ First.sh ‘
$nanoPrvní.sh
Přidejte do souboru následující skript bash a soubor uložte.
#!/bin/bashvyhodil 'Ahoj světe'
Soubor bash můžete spustit dvěma způsoby. Jedním ze způsobů je použití příkazu bash a druhým je nastavení oprávnění ke spuštění souboru bash a spuštění souboru. Zde jsou uvedeny oba způsoby.
$bashPrvní.shNebo,
$chmoda+x First.sh$./První.sh
Použití příkazu echo:
Příkaz echo můžete použít s různými možnostmi. Některé užitečné možnosti jsou uvedeny v následujícím příkladu. Když použijete „ vyhodil ‘Příkaz bez jakékoli možnosti, pak se ve výchozím nastavení přidá nový řádek. '-N' možnost se používá k tisku libovolného textu bez nového řádku a '-A' Možnost se používá k odstranění znaků zpětného lomítka z výstupu. Vytvořte nový bash soubor s názvem „ echo_example.sh “A přidejte následující skript.
#!/bin/bashvyhodil 'Tisk textu s novým řádkem'
vyhodil -n 'Tisk textu bez nového řádku'
vyhodil -A ' nOdebírání tobrácené lomítko tznaky n'
Spusťte soubor příkazem bash.
$bashecho_example.sh
Použití komentáře:
'#' symbol se používá k přidání jednořádkového komentáře do skriptu bash. Vytvořte nový soubor s názvem „ comment_example.sh ‘ a přidejte následující skript s jednořádkovým komentářem.
#!/bin/bash# Přidejte dvě číselné hodnoty
((součet=25+35))
#Vytiskněte výsledek
vyhodil $ součet
Spusťte soubor příkazem bash.
$bashcomment_example.sh
Použití víceřádkového komentáře:
V bashu můžete použít víceřádkový komentář různými způsoby. Jednoduchý způsob je ukázán v následujícím příkladu. Vytvořte nový bash s názvem, „Multiline-comment.sh“ a přidejte následující skript. Tady, ':' a ' symboly se používají k přidání víceřádkového komentáře do skriptu bash. Tento následující skript vypočítá druhou mocninu 5.
#!/bin/bash:'
Následující skript vypočítá
čtvercová hodnota čísla, 5.
'
((plocha=5*5))
vyhodil $ oblast
Spusťte soubor příkazem bash.
$bashmultiline-comment.sh
Chcete -li se dozvědět více o používání bash komentáře, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash_comments/
Použití při smyčce:
Vytvořte bash soubor s názvem, ‘While_example.sh’, znát použití zatímco smyčka. V příkladu zatímco smyčka bude iterovat pro 5 krát. Hodnota počet proměnná se zvýší o 1 v každém kroku. Když hodnota počet proměnná bude 5 pak zatímco smyčka skončí.
#!/bin/bashplatný=skutečný
počet=1
zatímco [ $ platné ]
dělat
vyhodil počet $
-li [ počet $ -ekv 5 ];
pak
přestávka
být
((počítat ++))
Hotovo
Spusťte soubor příkazem bash.
$bashwhile_example.sh
Chcete -li se dozvědět více o používání cyklu while, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash- while-loop-examples/
Použití pro smyčku:
Základní pro deklarace smyčky je zobrazena v následujícím příkladu. Vytvořte soubor s názvem „ for_example.sh “A přidejte následující skript pomocí pro smyčka. Tady, pro smyčka bude iterovat pro 10 časy a vytisknout všechny hodnoty proměnné, čelit v jednom řádku.
#!/bin/bashpro (( čelit=10; čelit>0; čelit--))
dělat
vyhodil -n '$ počítadlo'
Hotovo
printf ' n'
Spusťte soubor příkazem bash.
$bashfor_example.sh
Ve smyčce bash můžete použít smyčku pro různé účely a způsoby. Chcete -li se dozvědět více o používání smyčky for, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash-for-loop-examples/
Získat vstup uživatele:
' číst Příkaz ‘se používá k převzetí vstupu od uživatele v bash. Vytvořte soubor s názvem „ user_input.sh “A přidejte následující skript pro převzetí vstupu od uživatele. Zde bude uživateli odebrána jedna hodnota řetězce a zobrazí hodnotu kombinací jiné hodnoty řetězce.
#!/bin/bashvyhodil 'Zadejte své jméno'
čístnázev
vyhodil 'Vítejte$ jménona LinuxNápověda '
Spusťte soubor příkazem bash.
$bashuser_input.sh
Chcete -li se dozvědět více o používání uživatelských vstupů, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash-script-user-input/
Použití příkazu if:
Můžete použít if podmínku s jednou nebo více podmínkami. Počáteční a koncový blok tohoto příkazu je definován pomocí 'li' a 'být' . Vytvořte soubor s názvem „ simple_if.sh “S následujícím skriptem, který zná použití -li prohlášení v bash. Tady, 10 je přiřazen k proměnné, n . pokud hodnota $ n je menší než 10, pak bude výstup Jedná se o jednociferné číslo , jinak bude výstup Jedná se o dvouciferné číslo . Pro srovnání, '-Lt' se zde používá. Pro srovnání můžete také použít '-Ekv' pro rovnost , '-narozený' pro ne rovnost a '-Gt' pro větší než v bash skriptu.
#!/bin/bashn=10
-li [ $ n -lt 10 ];
pak
vyhodil „Je to jednociferné číslo“
jiný
vyhodil „Je to dvouciferné číslo“
být
Spusťte soubor příkazem bash.
$bashsimple_if.sh
Použití příkazu if s logikou AND:
V příkazu if lze použít různé typy logických podmínek se dvěma nebo více podmínkami. Jak můžete definovat více podmínek v příkazu if pomocí A logika je ukázána v následujícím příkladu. '&&' slouží k aplikaci A logika -li tvrzení. Vytvořte soubor s názvem „If_with_AND.sh“ zkontrolovat následující kód. Tady je hodnota uživatelské jméno a Heslo proměnné budou převzaty od uživatele a porovnány s „ admin ' a ' tajný “. Pokud se obě hodnoty shodují, výstup bude platný uživatel , jinak bude výstup neplatný uživatel .
! /dopoledne/bashvyhodil 'Zadejte uživatelské jméno'
čístuživatelské jméno
vyhodil 'Zadejte heslo'
čístHeslo
-li [[ ( $ uživatelské jméno=='admin' && $ heslo=='tajný' ) ]];pak
vyhodil 'platný uživatel'
jiný
vyhodil 'neplatný uživatel'
být
Spusťte soubor příkazem bash.
$bashif_with_AND.sh
Použití příkazu if s logikou OR:
' || ‘Se používá k definování NEBO logika v -li stav. Vytvořte soubor s názvem „If_with_OR.sh“ pomocí následujícího kódu zkontrolujte použití NEBO logika -li tvrzení. Tady je hodnota n budou převzaty od uživatele. Pokud se hodnota rovná patnáct nebo Čtyři pět pak bude výstup Vyhráli jste hru , jinak bude výstup Prohráli jste hru .
#!/bin/bashvyhodil 'Zadejte libovolné číslo'
čístn
-li [[ ( $ n -ekv patnáct || $ n -ekv Čtyři pět ) ]]
pak
vyhodil „Vyhráli jste hru“
jiný
vyhodil „Prohráli jste hru“
být
Spusťte soubor příkazem bash.
$bashif_with_OR.sh
Použití příkazu else if:
Použití jinak kdyby podmínka se v bash trochu liší od jiného programovacího jazyka. ' elif ‘Se používá k definování jinak kdyby stav v bash. Vytvořte soubor s názvem „ elseif_example.sh “A přidejte následující skript, abyste zjistili, jak jinak kdyby je definován v bash skriptu.
#!/bin/bashvyhodil „Zadejte své šťastné číslo“
čístn
-li [ $ n -ekv 101 ];
pak
vyhodil „Máte 1. cenu“
elif [ $ n -ekv 510 ];
pak
vyhodil „Získali jste 2. cenu“
elif [ $ n -ekv 999 ];
pak
vyhodil „Máte 3. cenu“
jiný
vyhodil „Promiňte, zkuste to příště“
být
Spusťte soubor příkazem bash.
$bashelseif_example.sh
Použití případu:
Případ příkaz je použit jako alternativa k if-elseif-else tvrzení. Počáteční a koncový blok tohoto příkazu je definován „ případ ' a ' esac “. Vytvořte nový soubor s názvem „ case_example.sh “A přidejte následující skript. Výstup následujícího skriptu bude stejný jako předchozí jinak kdyby příklad.
#!/bin/bashvyhodil „Zadejte své šťastné číslo“
čístn
případ $ n v
101)
vyhodil vyhodil „Máte 1. cenu“ ;;
510)
vyhodil „Získali jste 2. cenu“ ;;
999)
vyhodil „Máte 3. cenu“ ;;
*)
vyhodil „Promiňte, zkuste to příště“ ;;
esac
Spusťte soubor příkazem bash.
$bashcase_example.sh
Získejte argumenty z příkazového řádku:
Bash skript může číst vstup z argumentu příkazového řádku jako jiný programovací jazyk. Například, 1 $ a 2 $ variable slouží ke čtení argumentů prvního a druhého příkazového řádku. Vytvořte soubor s názvem command_line.sh a přidejte následující skript. Dvě hodnoty argumentů načtené následujícím skriptem a vytisknou jako výstup celkový počet argumentů a hodnoty argumentů.
#!/bin/bashvyhodil 'Celkem argumentů: $#'
vyhodil '1st Argument = $ 1'
vyhodil '2. argument = $ 2'
Spusťte soubor příkazem bash.
$bashcommand_line.sh Linuxový tip
Chcete -li se dozvědět více o použití argumentu příkazového řádku, můžete zkontrolovat následující odkaz.
https://linuxhint.com/command_line_arguments_bash_script/
Získejte argumenty z příkazového řádku s názvy:
Jak můžete číst argumenty příkazového řádku se jmény, ukazuje následující skript. Vytvořte soubor s názvem „ command_line_names.sh ‘ a přidejte následující kód. Zde dva argumenty, X a A jsou přečteny tímto skriptem a vytisknou součet X a Y.
#!/bin/bashprorozzlobenýv '[email protected]'
dělat
index= $(vyhodil $ arg | střih -f1 -d=)
hod= $(vyhodil $ arg | střih -f2 -d=)
případ $ index v
X) X=$ hodin;;
A) a=$ hodin;;
*)
esac
Hotovo
((výsledek= x + y))
vyhodil 'X + Y =$ výsledek'
Spusťte soubor příkazem bash a dvěma argumenty příkazového řádku.
$bashnázvy_příkazůX=Čtyři pět A=30
Kombinovat proměnné řetězce:
V bash můžete snadno kombinovat řetězcové proměnné. Vytvořte soubor s názvem string_combine.sh a přidejte následující skript, abyste zkontrolovali, jak můžete kombinovat řetězcové proměnné v bash umístěním proměnných dohromady nebo pomocí '+' operátor.
#!/bin/bashřetězec 1='Linux'
řetězec2='Náznak'
vyhodil '$ řetězec1$ string2'
řetězec 3=$ řetězec1+$ string2
řetězec3+=„Je to dobrý blog s výukovým programem“
vyhodil $ řetězec3
Spusťte soubor příkazem bash.
$bashstring_combine.sh
Získat podřetězec řetězce:
Stejně jako ostatní programovací jazyky nemá bash žádnou vestavěnou funkci pro snížení hodnoty z libovolných řetězcových dat. Ale můžete provést podřetězec jiným způsobem v bash, který je uveden v následujícím skriptu. Chcete -li skript otestovat, vytvořte soubor s názvem „ substring_example.sh “S následujícím kódem. Tady je hodnota, 6 označuje počáteční bod, odkud začne podřetězec a 5 udává délku podřetězce.
#!/bin/bashStr='Naučte se Linux z LinuxHint'
subStr=$ {Str: 6: 5}
vyhodil $ subStr
Spusťte soubor příkazem bash.
$bashsubstring_example.sh
Přidejte dvě čísla:
Aritmetické operace v bashu můžete provádět různými způsoby. Jak můžete přidat dvě celá čísla v bash pomocí dvojitých závorek, ukazuje následující skript. Vytvořte soubor s názvem „ add_numbers.sh “S následujícím kódem. Uživateli budou odebrány dvě celočíselné hodnoty a vytištěny výsledky přidání.
#!/bin/bashvyhodil 'Zadejte první číslo'
čístX
vyhodil „Zadejte druhé číslo“
čísta
(( součet= x + y))
vyhodil „Výsledek sčítání =$ součet'
Spusťte soubor příkazem bash.
$bashadd_numbers.sh
Chcete -li se dozvědět více o bash aritmetice, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash_arithmetic_operations/
Vytvořit funkci:
Jak můžete vytvořit jednoduchou funkci a funkci zavolat, ukazuje následující skript. Vytvořte soubor s názvem „ function_example.sh “A přidejte následující kód. Jakoukoli funkci můžete volat pouze jménem bez použití závorek v bash skriptu.
#!/bin/bashfunkceF1()
{
vyhodil 'Mám rád programování bash'
}
F1
Spusťte soubor příkazem bash.
$bashfunction_example.sh
Vytvořte funkci s parametry:
Bash nemůže deklarovat parametr funkce nebo argumenty v době deklarace funkce. Můžete však použít parametry ve funkci pomocí jiné proměnné. Pokud jsou v době volání funkce předány dvě hodnoty, pak se pro čtení hodnot použije proměnná $ 1 a $ 2. Vytvořte soubor s názvem „ funkce | _parameter.sh “A přidejte následující kód. Zde je funkce „ Obdélník_Area ‘ vypočítá plochu obdélníku na základě hodnot parametrů.
#!/bin/bashObdélník_Velikost() {
plocha= $((1 $ * 2 $))
vyhodil „Oblast je:$ oblast'
}
Obdélník_Velikost10 dvacet
Spusťte soubor příkazem bash.
$bashfunction_parameter.sh
Předejte návratovou hodnotu z funkce:
Funkce Bash může předávat číselné i řetězcové hodnoty. Jak můžete předat řetězcovou hodnotu z funkce, je znázorněno v následujícím příkladu. Vytvořte soubor s názvem „ function_return.sh “A přidejte následující kód. Funkce, Pozdrav() vrací do proměnné hodnotu řetězce, hod který se vytiskne později kombinací s jiným řetězcem.
#!/bin/bashfunkcePozdrav() {
p='Ahoj,$ jméno'
vyhodil $ str
}
vyhodil 'Zadejte své jméno'
čístnázev
hod= $(Pozdrav)
vyhodil 'Návratová hodnota funkce je$ hodin'
Spusťte soubor příkazem bash.
$bashfunction_return.sh
Chcete -li se dozvědět více o používání funkce bash, můžete zkontrolovat následující odkaz.
https://linuxhint.com/return-string-bash-functions/
Vytvořit adresář:
Bash používá „ mkdir ’Příkaz k vytvoření nového adresáře. Vytvořte soubor s názvem „ make_directory.sh “A přidejte následující kód, abyste od uživatele převzali nový název adresáře. Pokud název adresáře v aktuálním umístění neexistuje, vytvoří adresář, jinak program zobrazí chybu.
#!/bin/bashvyhodil 'Zadejte název adresáře'
čístnewdir
``mkdir $ newdir``
Spusťte soubor příkazem bash.
$bashmake_directory.sh
Vytvořte adresář kontrolou existence:
Pokud chcete před spuštěním ‘zkontrolovat existenci adresáře v aktuálním umístění mkdir ‘, Pak můžete použít následující kód. ‘-D Možnost se používá k testování, zda konkrétní adresář existuje nebo ne. Vytvořte soubor s názvem „ adresář_exist.sh ‘ a přidáním následujícího kódu vytvořte adresář kontrolou existence.
#!/bin/bashvyhodil 'Zadejte název adresáře'
čístndr
-li [ -d '$ ndir' ]
pak
vyhodil 'Adresář existuje'
jiný
``mkdir $ ndir``
vyhodil 'Adresář vytvořen'
být
Spusťte soubor příkazem bash.
$bashadresář_existovat.sh
Chcete -li se dozvědět více o vytváření adresářů, můžete zkontrolovat následující odkaz.
https://linuxhint.com/bash_mkdir_not_existent_path/
Přečíst soubor:
Pomocí smyčky můžete v bashu číst libovolný soubor řádek po řádku. Vytvořte soubor s názvem „ read_file.sh “A přidáním následujícího kódu si přečtete existující soubor s názvem„ book.txt '.
#!/bin/bashsoubor='book.txt'
zatímco čístčára;dělat
vyhodil $ řádek
Hotovo < $ soubor
Spusťte soubor příkazem bash.
$bashread_file.shSpuštěním následujícího příkazu zkontrolujte původní obsah ‘ book.txt ‘Soubor.
$kočkabook.txt
Chcete -li znát různé způsoby čtení souboru, můžete zkontrolovat následující odkaz.
https://linuxhint.com/read_file_line_by_line_bash/
Odstranit soubor:
' rm Příkaz ‘se v bashu používá k odstranění jakéhokoli souboru. Vytvořte soubor s názvem „ delete_file.sh “S následujícím kódem, který uživateli odebere název souboru a odstraní jej. Tady, '-I' volba se používá k získání oprávnění od uživatele před odebráním souboru.
#!/bin/bashvyhodil 'Odebrat zadáním názvu souboru'
čístfn
rm -i $ fn
Spusťte soubor příkazem bash.
$ls$bashdelete_file.sh
$ls
Připojit k souboru:
Nová data lze přidat do libovolného existujícího souboru pomocí '>>' operátor v bash. Vytvořte soubor s názvem ‘Append_file.sh “A přidejte následující kód pro přidání nového obsahu na konec souboru. Tady, ' Učení laravel 5 “Bude přidáno v části„ book.txt ‘ soubor po spuštění skriptu.
#!/bin/bashvyhodil „Před připojením souboru“
kočkabook.txt
vyhodil 'Učení Laravel 5'>>book.txt
vyhodil „Po připojení souboru“
kočkabook.txt
Spusťte soubor příkazem bash.
$bashappend_file.sh
Vyzkoušejte, zda soubor existuje:
Existenci souboru v bash můžete zkontrolovat pomocí '-A' nebo '-F' volba. '-F' Možnost se používá v následujícím skriptu k testování existence souboru. Vytvořte soubor s názvem „ file_exist.sh “A přidejte následující kód. Zde bude název souboru předán z příkazového řádku.
#!/bin/bashnázev souboru=1 $
-li [ -F '$ název_souboru' ];pak
vyhodil 'Soubor existuje'
jiný
vyhodil 'Soubor neexistuje'
být
Spuštěním následujících příkazů zkontrolujte existenci souboru. Tady, book.txt soubor existuje a book2.txt v aktuálním umístění neexistuje.
$ls$bashsoubor_exist.sh book.txt
$bashfile_exist.sh book2.txt
Poslat e-mailem:
E -mail můžete odeslat pomocí „ pošta “Nebo„ poslat mail ‘Příkaz. Před použitím těchto příkazů musíte nainstalovat všechny potřebné balíčky. Vytvořte soubor s názvem „ mail_example.sh “A k odeslání e -mailu přidejte následující kód.
#!/bin/bashPříjemce= admin@example.com
Předmět= Pozdrav
Zpráva= Vítejte na našich stránkách
``pošta-s $ Předmět $ Příjemce <<< $ Zpráva``
Spusťte soubor příkazem bash.
$bashmail_example.sh
Získat aktuální datum:
Aktuální systémové datum a čas můžete získat pomocí ` datum `příkaz. Každou část hodnoty data a času lze analyzovat pomocí „ Y ',' m ',' d ',' H ',' M ' a ' S ‘ . Vytvořte nový soubor s názvem „ date_parse.sh ‘ a přidejte následující kód k oddělení hodnot dne, měsíce, roku, hodiny, minuty a druhé.
#!/bin/bashRok=``datum+%A``
Měsíc=``datum+%m``
Den=``datum+%d``
Hodina=``datum+%H``
Minuta=``datum+%M``
Druhý=``datum+%S``
vyhodil ``datum``
vyhodil „Aktuální datum je:$ Den-$ Měsíc-$ Rok'
vyhodil „Aktuální čas je:$ Hodina:$ Minuta:$ Druhý'
Spusťte soubor příkazem bash.
$bashdate_parse.sh
Wait Command:
Počkejte je vestavěný příkaz Linuxu, který čeká na dokončení jakéhokoli spuštěného procesu. Počkejte příkaz se používá s konkrétním ID procesu nebo ID úlohy. Pokud není zadáno ID procesu nebo ID úlohy s příkazem čekat, bude čekat na dokončení všech aktuálních podřízených procesů a vrátí stav ukončení. Vytvořte soubor s názvem „ wait_example.sh ‘ a přidejte následující skript.
#!/bin/bashvyhodil 'Počkejte na příkaz' &
process_id=$!
Počkejte $ process_id
vyhodil 'Ukončeno se stavem $?'
Spusťte soubor příkazem bash.
$bashwait_example.sh
Chcete -li se dozvědět více o příkazu čekání, můžete zkontrolovat následující odkaz.
Spánek:
Pokud chcete pozastavit provádění libovolného příkazu na určité časové období, můžete použít spát příkaz. Výšku zpoždění můžete nastavit o sekundy (s), minuty (m), hodiny (h) a dny (d). Vytvořte soubor s názvem ‘Sleep_example.sh’ a přidejte následující skript. Tento skript po spuštění počká 5 sekund.
#!/bin/bashvyhodilPočkejtepro 5sekundy
spát 5
vyhodilDokončeno
Spusťte soubor příkazem bash.
$bashsleep_example.sh
Chcete -li se dozvědět více o příkazu spánku, můžete zkontrolovat následující odkaz.
https://linuxhint.com/sleep_command_linux/
Doufám, že po přečtení tohoto článku máte základní koncept skriptovacího jazyka bash a budete je moci použít na základě svých požadavků.