Sprievodca pre začiatočníkov

Výukový program pre skriptovanie Bash pre začiatočníkov

Výukový program pre skriptovanie Bash pre začiatočníkov

Ak začínate so systémami Linux, použite výrazy ako „Shell scripting“ alebo "Bash skriptovanie."“Môže byť úplne bežné - Ale čo znamenajú? Skôr ako sa dostaneme do podrobností, učenie sa skriptu Bash vám pomôže ušetriť čas pri vykonávaní a vykonávaní rôznych systémových úloh, lepšie porozumieť príkazovému riadku (terminálu) systému Linux a automatizovať viac systémových úloh.

Čo je Bash?

Bash, skratka pre „Bourne-Again-Shell,“ je unixový shell alebo tlmočník príkazového jazyka pre operačný systém GNU. Bol to hlavný Shell pre distribúcie Linuxu a vydania Apple macOS pred macOS Catalina. Bash je k dispozícii pre Windows 10 aj prostredníctvom subsystému Windows pre Linux.

Bash zvyčajne beží v textovom okne všeobecne známom ako terminál, kde používatelia zadávajú príkazy na vykonávanie rôznych úloh. Bash môže tiež vykonávať príkazy napísané v súbore, metóda označovaná ako „Skriptovanie typu bash.“

Rozdiel medzi skriptovaním Bash a skriptovaním Shell

Shell skriptovanie a Bash skript nie sú to isté. Pri skriptovaní Bash výslovne používate bash shell. Na druhej strane, skriptovanie Shell môže byť dosť široké slovo, pretože máme k dispozícii aj iné škrupiny ako Bash. Medzi najbežnejšie patria Korn (ksh), C shell (csh), Z shell (zsh) a Bash shell (sh). Nebolo by však prekvapením, keby sme našli ľudí, ktorí používajú bash skriptovanie a shell skriptovanie zameniteľné, čo znamená to isté. Náš príspevok k Top 6 Open Source Shells pre Linux poskytuje podrobný popis týchto shellov.

V tomto príspevku sa pozrieme na skriptovanie Bash. V predvolenom nastavení veľa dostupných distribúcií Linuxu využíva shell Bash. Pozrite si náš príspevok o 6 najlepších distribúciách systému Linux pre začiatočníkov. Ak chcete potvrdiť shell, ktorý používate vo svojej súčasnej distribúcii Linuxu, spustite príkaz na termináli.

ozvena $ SHELL

škrupina

Na obrázku vyššie vidíte, že predvoleným tlmočníkom v mojom systéme je bash. Momentálne používam Ubuntu 20.04 LTS. Poďme sa ponoriť!

Pochopenie skriptov Bash

Bash skripty sú textové súbory obsahujúce príkazy bash, ktoré sa vykonávajú za účelom vykonania rôznych úloh. Na napísanie týchto skriptov potrebujete iba jednoduchý textový editor, ako je gedit, listová podložka, vim, nano a oveľa viac. Nezabudnite svoje skripty uložiť pomocou súboru ako obyčajný text a nie ako formátovaný text. Jeden z mojich obľúbených editorov, ktorý používam na písanie skriptov, je nano editor.

Pomenovanie, prideľovanie povolení a vykonávanie skriptu Bash

Ako je vysvetlené vyššie, uistite sa, že používate .sh rozšírenie pre vaše bash skripty. Môžete mať napríklad skript s menom fosslinux_backup.š. Najlepšie by však bolo, keby ste pri označovaní skriptov postupovali opatrne. Napríklad väčšina ľudí rada uloží väčšinu svojich skriptov ako „test.„Pre väčšinu nie je známy zabudovaný príkaz Unix s názvom test, ktorý kontroluje typy súborov a porovnáva hodnoty. Príkaz which môžete použiť na kontrolu, či existuje program s rovnakým názvom ako váš skript, aby sa predišlo akýmkoľvek konfliktom programu.

ktoré [príkaz] e.g ktorý test

Ktorý príkaz

Z výstupu vyššie vidíme, že test je už vstavaným príkazom. Preto, aby som predišiel akýmkoľvek konfliktom medzi programami, nebudem nijako pomenovávať svoje skripty „Test.“

Ak chcete, aby bol skript spustiteľný pre každého používateľa, použite nasledujúci príkaz:

chmod + x [skript.sh]

Ak chcete, aby bol skript spustiteľný pre aktuálneho používateľa, použite nasledujúci príkaz:

chmod u + x [skript.sh]

Ak chcete spustiť skript, spustite nasledujúci príkaz:

./ [názov_skriptu]

Vyššie uvedenou metódou si uvedomíte, že budete musieť použiť cd príkaz presunúť do adresára obsahujúceho skript alebo prejsť cestu k skriptu. Existuje však riešenie tohto problému. Uložte svoje skripty do kôš adresár prítomný v domovskom adresári.

S nedávnymi aktualizáciami väčšina distribúcií neprichádza s kôš priečinok v predvolenom nastavení. Preto sa od vás bude vyžadovať, aby ste ho vytvorili manuálne. Umiestnením skriptov do tohto priečinka môžete skript vykonať zadaním jeho názvu do terminálu bez použitia klávesu cd a ./ príkazy.

Pokyny pre skriptovanie Bash

Pred napísaním prvého skriptu existuje niekoľko pokynov, ktorým musíte pri písaní skriptov porozumieť.

The #!/ bin / bash (Hash-Bang Hack) vyhlásenie je cesta k shellu, ktorý budeme používať. Ak používate iný shell, budete musieť upraviť túto cestu. Rozumieme, že všetky komentáre začínajú # symbol. Keď však nasledovalo a (!) značka v hacke Hash-Bang, je skript nútený vykonať so škrupinou, na ktorú ukazuje tento riadok. V našom prípade je to Bash shell.

Váš prvý skript Bash

Ako väčšina programovacích jazykov, aj my napíšeme skript, ktorý vytlačí „Hello World“ vyhlásenie po vykonaní. Otvorte svoj obľúbený textový editor a vložte nasledujúce príkazy. Uložte textový súbor ako fossHelloWorld.š alebo akýkoľvek iný názov, ktorý nie je zabudovaným príkazom.

#!/ bin / bash #Tento skript vytlačí 'Hello World' na echo terminálu "Hello World"

Po uložení súboru ho vykonajte pomocou nasledujúceho príkazu:

chmod + x fossHelloWorld.š

Teraz ho spustite pomocou príkazu nižšie:

./ fossHelloWorld.š

Prvý scenár

Skript vyššie má iba tri riadky. Prvým z nich je hack Hash-Bang, o ktorom sme hovorili vyššie, druhým je komentár a tretím je príkaz, ktorý sa vykoná. Upozorňujeme, že komentáre sa nikdy nevykonajú.

Pozrime sa na ďalšie funkcie skriptovania bash, ktoré môžete využiť.

Príkaz Echo

Príkaz Echo sa používa na tlač výstupov na príkazovom riadku alebo termináli systému Linux. Ak ste vývojár a už ste s PHP spolupracovali, určite ste sa s týmto príkazom už stretli. Napíšme malý bash skript, ktorý demonštruje, ako tento príkaz funguje.

#!/ bin / bash # Vytlačíme echo prvého riadku „Toto je Fosslinux.com - S novým riadkom "# Poďme vytlačiť Druhý príkaz bez nového riadku echo -n" Toto je Fosslinux - Žiadny nový riadok "

Uložte skript, priraďte požadované povolenia a vykonajte ho.

Bash Echo

Aby sme porozumeli kódu, prvý príkaz echo vytlačí vyhlásenie a prejde na ďalší riadok. Druhý príkaz echa má -n argument, ktorý zabráni skriptu prejsť na ďalší riadok. S príkazom Echo môžete použiť mnoho ďalších možností, vrátane premenných, ako uvidíme nižšie.

Premenné

Premenné sú bežnou a nevyhnutnou súčasťou každého programovacieho jazyka. Jeden môže deklarovať premenné Bash niekoľkými spôsobmi. Pri priraďovaní hodnoty k akejkoľvek premennej nemusíte používať žiadne symboly. Pri volaní hodnoty premennej však budete musieť použiť znak $ podpísať na začiatku premennej.

Môžete použiť premenné na termináli alebo ako skripty. Vykonajte príkazy uvedené nižšie v termináli.

myWebsite = "Fosslinux.com "echo $ myWebsite

Použitie premenných na termináli

Teraz vytvorme bash skript, ktorý vezme dva vstupy od používateľa a uloží ich do premenných $ x a $ r. Skript potom skontroluje, či sú dve hodnoty rovnaké alebo nie.

#!/ bin / bash echo "Zadajte prvé číslo" prečítajte echo "Zadajte druhé číslo" prečítajte b if [[$ a -eq $ b]] potom echo "Čísla sú rovnaké" iné echo "Čísla nie sú rovnaké" fi

Uložte skript a spustite ho. Na obrázku nižšie vidíte, že sme zadali rôzne hodnoty a skript dokázal skontrolovať, či sú rovnaké alebo nie.

Bash premenné

Poďme sa teraz bližšie pozrieť na kód. Prvé dva príkazy ozveny vyzývajú používateľa na zadanie prvého a druhého čísla. The čítať príkaz počká, kým užívateľ zadá číslo a uloží ho do zadanej premennej. V našom prípade je to tak a a b. Potom máme príkaz if, ktorý kontroluje, či sú dve hodnoty rovnaké alebo nie.

Podmienené vyhlásenie

V ktoromkoľvek programovacom jazyku riadia tok programu podmienené príkazy. Kus kódu sa vykoná, iba ak je splnená konkrétna podmienka. Medzi najbežnejšie podmienené výroky patria „ak-potom-inak“ a „prípad.„Ďalej je uvedená základná syntax príkazu if-then-else.

ak [[podmienka]] potom  inak  fi

Prezrite si nižšie uvedený skript, ktorý využíva podmienené vyhlásenie „ak-potom-inak“.

#!/ bin / bash echo „Zadajte svoj vek“ prečítajte vek, ak ((vek> 18)) potom echo „Môžete ísť na večierok“ else echo „Nemáte oprávnenie ísť na večierok“ fi

Bash podmienečné vyhlásenia

Prejdime si vyššie uvedený skript. Máme ozvena vyhlásenie, ktoré používateľov vyzýva na zadanie ich vekového čísla. The čítať príkaz uloží zadaný vek do premennej „vek.„Potom máme podmienené vyhlásenie if-then-else, ktoré pred poučením používateľa skontroluje, či je vek väčší ako 18 rokov.

Slučky

Smyčky sa bežne používajú, ak chcete kus kódu spustiť viackrát. Napríklad, ak by som chcel zopakovať 1 000 riadkov výrazu „Vitajte na Fosslinuxe“, vyžadoval by som 1 000 odrazených príkazov. Avšak so slučkami všetko, čo musím urobiť, je určiť, koľkokrát chcem, aby sa vyhlásenie zopakovalo alebo vytlačilo na termináli. Bash podporuje tri typy slučiek; Pre slučku Loop, While Loop a While Loop. Pozrime sa na každú z nich.

For Loop sa používa na iteráciu zoznamom špecifikovaných údajov alebo poľom. Ďalej je uvedená základná syntax Bash For Loop;

pre hodnotu v 1 2 3 4 5… N urobiť inštrukciu1 inštrukcia2 inštrukcia-N hotové

alebo,

pre HODNOTU v súbore1 súbor2 súbor3 urobte inštrukciu1 na $ VALUE inštrukcia2 inštrukcia-N hotové

Pozrite sa na nižšie uvedený skript. Iteruje cez dané dni v týždni a tlačí ich na Terminál riadok po riadku.

# Prečítajte si názov všedného dňa v každej iterácii cyklu pre deň v pondelok utorok streda štvrtok piatok sobota nedeľa echo „$ day“ hotovo

Uložme skript ako ForLoop.š a vykonať to. Nasleduje snímka obrazovky s výstupom.

Pre slučku

Je to iba jednoduchý príklad toho, čo môžete robiť s For Loop. Môžete ich tiež skombinovať s podmienenými príkazmi na dokončenie konkrétnej úlohy.

While Loop vykoná konkrétnu úlohu, zatiaľ čo konkrétna podmienka zostáva True. V každej iterácii slučka najskôr skontroluje stav pred vykonaním pokynov. Keď je podmienka False, slučka sa ukončí. Základná syntax slučky while je:

zatiaľ čo [CONDITION] robí [PRÍKAZY] hotové

Napríklad môžeme mať skript, ktorý výpis vytlačí „Vitajte vo FOSSLINUX.KOM ” 20-krát, kým nie je premenná X nastavená na 20. Pokúsme sa to prakticky zrealizovať. Pozrite sa na nižšie uvedený skript.

#!/ bin / bash x = 1, zatiaľ čo [$ x -le 20] robí echo „Vitajte vo FOSSLINUX.COM "x = $ (($ x + 1)) hotovo

Uložme skript ako WhileLoop.š a vykonať to. Nasleduje snímka obrazovky s výstupom.

Zatiaľ čo Loop

Pozrime sa na skript While Loop vyššie. Najprv deklarujeme premennú X, ktorá má hodnotu 1. Potom vytvoríme príkaz While, ktorý vydá vyhlásenie „Vitajte vo FOSSLINUX.COM ”, zatiaľ čo X je menej ako 20. Nakoniec po každej iterácii zvyšujeme X o jednu.

Smyčky Bash Until sa používajú na vykonávanie sady pokynov alebo príkazov, pokiaľ sa podmienka vyhodnotí ako nepravdivá. Nižšie je uvedená základná syntax cyklu Until Loop.

kým [PODMIENKA] neurobí [POKYNY / PRÍKAZY] hotové

Podobne ako v cykle While, aj v slučke While najskôr dôjde k vyhodnoteniu nastavenej podmienky pred vykonaním pokynov alebo príkazov. Ak sa stav vyhodnotí ako nepravdivý, vykonajú sa pokyny. Smyčka je ukončená, keď sa stav vyhodnotí ako pravdivý. Pozrite sa na príklad nižšie.

#!/ bin / bash count = 0 do [$ count -gt 5] do echo Counter: $ count ((count ++)) done

Po uložení a spustení vyššie uvedeného skriptu dostaneme výstup nižšie:

Kým Loop

Skripty vyššie najskôr vytvoria počet premenných a nastavia ich na nulu (0). To je podmienka, ktorá riadi tok nášho programu. Smyčka Until Loop skontroluje, či je hodnota počtu väčšia ako 5. Ak nie je, vytlačí odovzdané pokyny. Ak je však hodnota väčšia ako 5, slučka sa okamžite ukončí. Nakoniec zvýšime hodnotu počítania o 1 (počet ++).

Bash funkcie

Pri programovaní a skriptovaní sa funkcie používajú na zadržanie opakovane použiteľného kódu, ktorý je potrebný na vykonanie konkrétnej úlohy. Preto, ak máte podobné príkazy, ktoré chcete vykonať v rôznych častiach vášho skriptu, nemusíte tieto príkazy písať opakovane. Uzatvorte ich do funkcie a namiesto toho vykonajte funkciu.
Nižšie je uvedená základná syntax funkcie Bash.

function_name ()    

alebo,

funkcia nazov_funkcie    

Vytvorme jednoduchý skript, ktorý využíva funkcie. Najprv vytvoríme funkciu s názvom „myFunction“, ktorá pri volaní vydá vyhlásenie „Hello I am the first function“. Druhá funkcia „myCities“ je trochu pokročilá, pretože vyžaduje zadané argumenty. Argumenty sa zadajú po vyvolaní názvu funkcie. Sú prístupné vo funkcii ako $ 1.

#!/ bin / bash myFunction () echo "Dobrý deň, som prvá funkcia" echo "Dobrý deň, som prvá funkcia" echo echo "Toto je druhá funkcia" funkcia myCities () echo Dobrý deň $ 1 myFunction myCities Washington, D.C myCities Phoenix

Po uložení a vykonaní skriptu dostaneme výstup nižšie.

Funkcie

Bash menu

Pri písaní skriptu na vykonanie rozšírenej úlohy môže byť potrebné, aby používateľ vybral jednu z viacerých možností zobrazených v termináli. Aby sme to dosiahli, použijeme bash vyberte príkaz.

Vytvára jednoduchý skript ponuky, ktorý používateľov vyzve, aby zo zoznamu vybrali svoje obľúbené distribúcie systému Linux. Pozrite sa na nižšie uvedený skript.

#!/ bin / bash # Tlačová správa pre používateľa echo „Vyberte si obľúbenú distribúciu Linuxu“ vyberte distribúciu v Ubuntu Fedora OpenSUSE DeepIN Parrot ArchLinux Kali do # Vytlačte vybranú hodnotu, ak [[$ distro == "Ukončiť"]] a potom ukončíte 0 else echo "Vybraná distribúcia Linuxu je $ distro" hotová

Uložme skript ako ponuku.sh a vykonajte to. Získame výstup nižšie.

Bash menu

Vo vyššie uvedenom skripte máme zoznam siedmich distribúcií Linuxu, z ktorých si používateľ jednu vyberie. Keď urobia výber, uloží sa do premennej distro a neskôr vytlačené zreťazením reťazcom „Vybraná distribúcia Linuxu je.“ Ponuky Bash select môžu byť veľmi užitočné, najmä ak máte viac skriptov vykonávajúcich rôzne úlohy a musíte zvoliť ten, ktorý chcete spustiť.

Aritmetika

Každý programovací jazyk podporuje vykonávanie aritmetických operácií a bash skript nie je výnimkou. To, ako vykonávame aritmetické operácie, je však trochu iné. Nižšie je uvedený jeden zo spôsobov, ako môžete vykonávať aritmetické operácie v bashe. Pozrime sa na štyri typy aritmetických operácií - súčet, delenie a násobenie.

#!/ bin / bash # Vypočítať výsledok súčtu = $ ((70 + 15)) # Vytlačiť echo hodnotu súčtu "sum = $ výsledok" # Vypočítať výsledok delenia = $ ((100/25)) # Vytlačiť echo hodnotu delenia "divízia = $ result "#Výpočet výsledku násobenia = $ ((15 * 15)) echo" Násobenie = $ výsledok "

Uložme vyššie uvedený skript ako aritmetický.sh a vykonajte to. Získame výstup nižšie.

Aritmetika

Záver

Toto je úplná príručka pre začiatočníkov, ako začať so skriptovaním Bash. Bash však má viac ako to, čo je popísané v tomto výučbe. Jedným z miest, ktoré by som vám odporučil, aby ste zdokonalili svoje schopnosti, je GNU's Bash Reference Manual. Ak narazíte na nejaké problémy alebo komentujete tento príspevok, môžete sa dotknúť komentárov uvedených nižšie.

Hry Ako zobraziť počítadlo FPS v hrách Linux
Ako zobraziť počítadlo FPS v hrách Linux
Hranie na systéme Linux získalo veľký tlak, keď spoločnosť Valve v roku 2012 oznámila podporu systému Linux pre klienta Steam a ich hry. Od tej doby s...
Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...