V Linuxu nám shell skripty pomáhají mnoha různými způsoby, včetně provádění nebo dokonce automatizace určitých úloh správy systému, vytváření jednoduchých nástrojů příkazového řádku a mnoho dalších.
V této příručce ukážeme novým uživatelům Linuxu, kde spolehlivě ukládat vlastní skripty prostředí, vysvětlíme, jak psát funkce a knihovny vlastního prostředí a používat funkce z knihoven v jiných skriptech.
Aby bylo možné spouštět skripty bez zadávání úplné/absolutní cesty, musí být uloženy v jednom z adresářů v $ PATH proměnná prostředí.
Chcete -li zkontrolovat svůj $ PATH, vydá níže uvedený příkaz:
$ echo $ PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games.
Normálně, pokud adresář zásobník existuje v domovském adresáři uživatelů, je automaticky zahrnut do jeho adresáře $ PATH. Zde můžete ukládat skripty prostředí.
Proto vytvořte soubor zásobník adresář (který může také ukládat Perl, Awk nebo Krajta skripty nebo jiné programy):
$ mkdir ~/bin.
Dále vytvořte adresář s názvem lib (zkratka pro knihovny), kde budete mít své vlastní knihovny. Můžete v něm také ponechat knihovny pro jiné jazyky, jako je C, Python atd. Pod ním vytvořte další adresář s názvem sh; to zejména uloží vaše knihovny shellu:
$ mkdir -p ~/lib/sh
A funkce skořepiny je skupina příkazů, které provádějí speciální úlohu ve skriptu. Fungují podobně jako procedury, podprogramy a funkce v jiných programovacích jazycích.
Syntaxe pro zápis funkce je:
název_funkce () {seznam příkazů}
Například můžete ve skriptu napsat funkci, která zobrazí datum jak následuje:
showDATE () {datum;}
Pokaždé, když chcete zobrazit datum, jednoduše vyvolejte výše uvedenou funkci pomocí jejího názvu:
$ showDATE.
A shell knihovna je prostě shell skript, ale můžete napsat knihovnu, která bude ukládat pouze vaše funkce, které můžete později volat z jiných shell skriptů.
Níže je uveden příklad knihovny s názvem libMYFUNCS.sh v mém ~/lib/sh adresář s dalšími příklady funkcí:
#!/bin/bash #Funkce pro jasný seznam adresářů v PATH showPATH () {oldifs = "$ IFS" #store starý interní oddělovač polí IFS =: #specifikujte nový interní oddělovač polí pro DIR v $ PATH; do echo $ DIR; hotovo IFS = "$ oldifs" #obnovit starý interní oddělovač polí. } #Funkce pro zobrazení přihlášeného uživatele. showUSERS () {echo -e „Níže jsou uživatelé přihlášeni v systému: \ n“ w. } #Vytisknout podrobnosti o uživateli printUSERDETS () {oldifs = "$ IFS" #store old internal field separator IFS =: #specify a new internal field separator read -p "Enter user name pro hledání: "uname #read username echo" "#read and save from a here string values into variables using: as a field delimiter read -r username pass uid gid komentáře homedir shell <<< "$ (cat /etc /passwd | grep"^$ uname ")" #vytisknout zachycené hodnoty echo -e "Uživatelské jméno je: $ uživatelské jméno \ n" echo -e "ID uživatele: $ uid \ n "echo -e "GID uživatele: $ gid \ n" echo -e "Komentáře uživatele: $ komentáře \ n" echo -e "Domovská adresa uživatele: $ homedir \ n" echo -e "Uživatelská schránka: $ shell \ n" IFS = "$ oldifs "#store old internal oddělovač pole. }
Uložte soubor a spusťte spustitelný skript.
Chcete -li použít funkci v a lib, musíte v první řadě zahrnout lib ve skriptu shellu, kde bude funkce použita, ve formě níže:
$ ./path/to/lib. NEBO. $ source/cesta/k/lib.
Takže byste použili tuto funkci printUSERDETS z lib ~/lib/sh/libMYFUNCS.sh v jiném skriptu, jak je uvedeno níže.
Pro tisk podrobností konkrétního uživatele nemusíte do tohoto skriptu psát další kód, stačí zavolat existující funkci.
Otevřete nový soubor s názvem test.sh:
#!/bin/bash #include lib.. ~/lib/sh/libMYFUNCS.sh #use funkce z lib. printUSERDETS #exit skript. výstup 0.
Uložte jej, poté spusťte spustitelný skript a spusťte jej:
$ chmod 755 test.sh. $ ./test.sh
V tomto článku jsme vám ukázali, kam spolehlivě ukládat skripty prostředí, jak psát vlastní funkce prostředí a knihovny, vyvolávat funkce z knihoven v běžných skriptech prostředí.
Dále si vysvětlíme přímý způsob konfigurace Vim jako IDE pro skriptování Bash. Do té doby zůstaňte vždy ve spojení s TecMint a také se podělte o své myšlenky o této příručce prostřednictvím níže uvedeného formuláře pro zpětnou vazbu.