Jak pisać i używać niestandardowych funkcji i bibliotek powłoki

Jak pisać i używać niestandardowych funkcji i bibliotek powłoki

W systemie Linux skorupy pomagają nam na wiele różnych sposobów, w tym w wykonywaniu, a nawet automatyzacji niektórych zadań administracji systemu, tworzeniu prostych narzędzi wiersza poleceń i wielu innych.

W tym przewodniku pokażemy nowych użytkowników Linux, gdzie niezawodnie przechowywać niestandardowe skontlerze, wyjaśnić, jak pisać niestandardowe funkcje powłoki i biblioteki, używać funkcji z bibliotek w innych skryptach.

Gdzie przechowywać skorupy skorupowe

Aby uruchomić skrypty bez wpisywania pełnej/bezwzględnej ścieżki, muszą być przechowywane w jednym z katalogów w $ Ścieżka Zmienna środowiskowa.

Aby sprawdzić $ Ścieżka, Wydaje poniższe polecenie:

$ echo $ ścieżka /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games 

Normalnie, jeśli katalog kosz istnieje w katalogu domowym użytkowników, jest on automatycznie zawarty w jego/jej $ Ścieżka. Możesz przechowywać tutaj swoje skorupy.

Dlatego stwórz kosz katalog (który może również przechowywać Perl, Awk lub Pyton skrypty lub inne programy):

$ mkdir ~/bin 

Następnie utwórz katalog o nazwie Lib (skrót od bibliotek), gdzie będziesz przechowywać własne biblioteki. Możesz także przechowywać biblioteki dla innych języków, takich jak C, Python i tak dalej. Pod nim utwórz inny katalog zatytułowany cii; To szczególnie będzie przechowywać biblioteki powłoki:

$ mkdir -p ~/lib/sh 

Utwórz własne funkcje i biblioteki powłoki

A funkcja powłoki to grupa poleceń, które wykonują specjalne zadanie w skrypcie. Działają podobnie do procedur, podprogramów i funkcji w innych językach programowania.

Składnia do pisania funkcji to:

function_name () lista poleceń 

Na przykład możesz napisać funkcję w skrypcie, aby pokazać data następująco:

showDate () data; 

Za każdym razem, gdy chcesz wyświetlić data, Po prostu wywołaj powyższą funkcję, używając jej nazwy:

$ showDate 

A Biblioteka Shell to po prostu skrypt powłoki, jednak możesz napisać bibliotekę, aby przechowywać tylko swoje funkcje, które można później wywołać z innych skonfliktów.

Poniżej znajduje się przykład biblioteki o nazwie Libmyfuncs.cii w moim ~/lib/sh katalog z większą liczbą przykładów funkcji:

#!/bin/bash #function, aby wyraźnie wymienić katalogi w ścieżce showpath () oldifs = "$ ifs" #store stary separator pola wewnętrznego ifs =: #specyfikuj nowy wewnętrzny separator pola dla dir in $ ścieżka; echo $ reli; wykonane ifs = "$ oldifs" #restore stary wewnętrzny separator pola #function, aby wyświetlić zalogowane showusers użytkowników () echo -e „ oldifs = "$ ifs" #store stary separator pola wewnętrznego ifs =: #specyfikuj nowy wewnętrzny separator pola odczyt -p -wprowadź nazwę użytkownika do wyszukiwania: „Uname #read Nazwa użytkownika echo” #Read i przechowuj z tutaj ciągów tutaj ciągów. Wartości do zmiennych za pomocą: Jako ograniczenie pola odczyt -r nazwa użytkownika Pass UID GID Komentarze Homedir Shell <<< "$(cat /etc/passwd | grep "^$uname")" #print out captured values echo -e "Username is : $username\n" echo -e "User's ID : $uid\n" echo -e "User's GID : $gid\n" echo -e "User's Comments : $comments\n" echo -e "User's Home Dir : $homedir\n" echo -e "User's Shell : $shell\n" IFS="$oldifs" #store old internal field separator  

Zapisz plik i uczyń skrypt wykonywalny.

Jak wywołać funkcje z biblioteki

Używać funkcji w Lib, Musisz przede wszystkim obejmować Lib W skrypcie powłoki, w którym funkcja będzie używana, w poniższym formularzu:

$ ./ścieżka/do/lib lub $ source/ścieżka/do/lib 

Więc użyłbyś funkcji PrintUserDets z lib ~/lib/sh/libmyfuncs.cii w innym skrypcie, jak pokazano poniżej.

Nie musisz pisać innego kodu w tym skrypcie, aby wydrukować dane konkretnego użytkownika, po prostu wywołać istniejącą funkcję.

Otwórz nowy plik o nazwie test.cii:

#!/bin/bash #include lib . ~/lib/sh/libmyfuncs.SH #Użyj funkcji z lib printuserdets #exit script exit 0 

Zapisz go, a następnie spraw, aby skrypt był wykonywalny i uruchom:

test $ chmod 755.sh $ ./test.cii 
Zapisz funkcje powłoki

W tym artykule pokazaliśmy, gdzie niezawodnie przechowywać skontlerze, jak pisać własne funkcje powłoki i biblioteki, wywołuje funkcje z bibliotek w normalnych skontleniach.

Następnie wyjaśnimy prosty sposób konfigurowania Krzepa Jako IDE do scenariuszy bash. Do tego czasu zawsze pozostań w kontakcie z TecMint, a także podziel się przemyśleniami na temat tego przewodnika za pośrednictwem poniższego formularza opinii.