GNU/Linux >> Znalost Linux >  >> Linux

Shell Scripting Část I:Začínáme se skriptováním bash

Ahoj. Toto je první část série linuxových tutoriálů. Při psaní tohoto tutoriálu předpokládám, že jste úplný začátečník ve vytváření skriptů pro Linux a jste velmi ochotni se učit. Během série se bude úroveň zvyšovat, takže jsem si jistý, že i pro pokročilejší uživatele bude něco nového. Takže začneme.

Úvod

Většina našich operačních systémů včetně Linuxu může podporovat různá uživatelská rozhraní (UI). Grafické uživatelské rozhraní (GUI) je uživatelsky přívětivé desktopové rozhraní, které umožňuje uživatelům klikat na ikony pro spouštění aplikace. Dalším typem rozhraní je rozhraní příkazového řádku (CLI), které je čistě textové a přijímá příkazy od uživatele. Shell, interpret příkazů čte příkaz přes CLI a vyvolává program. Většina dnešních operačních systémů poskytuje obě rozhraní včetně distribucí Linuxu.

Při použití shellu musí uživatel na terminálu zadat řadu příkazů. Žádný problém, pokud uživatel musí provést úkol pouze jednou. Pokud je však úkol složitý a musí se opakovat vícekrát, může to být pro uživatele trochu únavné. Naštěstí existuje způsob, jak automatizovat úkoly shellu. To lze provést psaním a spouštěním skriptů shellu. Skript shellu je typ souboru, který se skládá ze série a posloupnosti příkazů, které jsou podporovány prostředím Linux.

Proč vytvářet skripty shellu?

Shell skript je velmi užitečný nástroj při automatizaci úloh v operačních systémech Linux. Lze jej také použít ke kombinaci utilit a vytváření nových příkazů. Dlouhé a opakující se sekvence příkazů můžete kombinovat do jednoho jednoduchého příkazu. Všechny skripty lze spouštět bez nutnosti jejich kompilace, takže uživatel bude mít možnost bezproblémově vytvářet prototypy příkazů.

Jsem v prostředí Linuxu nováčkem, mohu se ještě naučit vytvářet shell skripty?

Samozřejmě! Vytváření shell skriptů nevyžaduje komplexní znalost Linuxu. Postačí základní znalost běžných příkazů v Linux CLI a textový editor. Pokud jste úplný začátečník a nemáte žádné základní znalosti o příkazovém řádku Linuxu, mohl by vám pomoci tento tutoriál.

Vytváření mého prvního shell skriptu

Bash (Bourne-Again Shell) je výchozí shell ve většině distribucí Linuxu a OS X. Jedná se o open-source projekt GNU, který měl nahradit sh (Bourne Shell), původní unixový shell. Byl vyvinut Brianem Foxem a byl vydán v roce 1989.

Vždy si musíte pamatovat, že každý skript pro Linux používající bash bude začínat následujícím řádkem:

#!/bin/bash

Každý skript pro Linux začíná řádkem shebang (#!). Řádek bang určuje úplnou cestu /bin/bash k interpretru příkazů, který bude použit ke spuštění skriptu.

Ahoj světe!

Každý programovací jazyk začíná Hello World! Zobrazit. Tuto tradici neukončíme a vytvoříme vlastní verzi tohoto fiktivního výstupu v Linux skriptování.

Chcete-li začít vytvářet náš skript, postupujte podle následujících kroků:

Krok 1: Otevřete textový editor. Pro tento příklad použiji gedit. Chcete-li otevřít gedit pomocí terminálu, stiskněte CTRL + ALT + T na klávesnici a napište gedit. Nyní můžeme začít psát náš skript.

Krok 2: V textovém editoru zadejte následující příkaz:

#!/bin/bash 
echo "Hello World"

Krok 3: Nyní uložte dokument pod názvem souboru hello.sh. Všimněte si, že každý skript bude mít příponu souboru .sh.

Krok 4: Z bezpečnostních důvodů vynucených distribucemi Linuxu nejsou soubory a skripty ve výchozím nastavení spustitelné. To však můžeme pro náš skript změnit pomocí příkazu chmod v Linux CLI. Zavřete aplikaci gedit a otevřete terminál. Nyní zadejte následující příkaz:

chmod +x hello.sh

Řádek výše nastavuje oprávnění ke spuštění souboru hello.sh. Tento postup je třeba provést pouze jednou před prvním spuštěním skriptu.

Krok 5: Chcete-li skript spustit, zadejte na terminálu následující příkaz:

./hello.sh

Uveďme další příklad. Tentokrát do našeho skriptu hello začleníme zobrazování některých systémových informací pomocí příkazů whoami a date.

Otevřete hello.sh v našem textovém editoru a my upravíme náš skript zadáním:

#!/bin/bash
echo "Hello $(whoami) !"
echo "The date today is $(date)"

Uložte změny, které jsme ve skriptu provedli, a spusťte skript (krok 5 v předchozím příkladu) zadáním:

./hello.sh

Výstup skriptu bude:

V předchozím příkladu byly příkazy whoami a date použity uvnitř příkazu echo. To pouze znamená, že všechny nástroje a příkazy dostupné v příkazovém řádku lze také použít ve skriptech shellu.

Generování výstupu pomocí printf

Dosud jsme v našem předchozím příkladu používali echo k tisku řetězců a dat z příkazů. Echo se používá k zobrazení řádku textu. Dalším příkazem, který lze použít k zobrazení dat, je příkaz printf. Printf řídí a tiskne data jako funkce printf v C.

Níže je uveden souhrn běžných ovládacích prvků tisku:

Kontrola Použití
\" Dvojité uvozovky
\\ Zpětné lomítko
\b Backspace
\c Neprodukovat žádný další výstup
\e Escape
\n Nový řádek
\r Vrácení vozíku
\t Karta Horizontální
\v Svislá karta

Příklad3:Otevřeme předchozí hello.sh a změníme všechny echo na printf a spustíme skript znovu. Všimněte si, jaké změny nastanou v našem výstupu.

#!/bin/bash
printf "Hello $(whoami) !"
printf "The date today is $(date)"

Všechny řádky jsou k sobě připojeny, protože jsme v příkazu printf nepoužili žádné ovládací prvky. Proto má příkaz printf v Linuxu stejné vlastnosti jako funkce C printf.

K formátování výstupu našeho skriptu použijeme dva ovládací prvky ve výše uvedené tabulce. Aby ovládací prvky fungovaly, musí být označeny \ uvnitř uvozovek příkazu printf. Například upravíme předchozí obsah hello.sh na:

#!/bin/bash
printf "Hello \t $(whoami) !\n"
printf "The date today is $(date)\n"

Výstup skriptu:

Závěr

V tomto tutoriálu jste se naučili základy skriptování shellu a byli jste schopni vytvářet a spouštět skripty shellu. Během druhé části tutoriálu představím, jak deklarovat proměnné, přijímat vstupy a provádět aritmetické operace pomocí příkazů shellu.


Linux
  1. Jak analyzovat Json pomocí skriptování Shell v Linuxu?

  2. Začínáme s SSH v Linuxu

  3. Šablony s Linuxem ve skriptu Shell?

  1. Začínáme s linuxovými firewally

  2. Začínáme se Zsh

  3. Začínáme s PostgreSQL na Linuxu

  1. Začínáme s btrfs pro Linux

  2. Rady pro začátek s GNOME

  3. Začínáme s pracovním prostředím GNOME Linux