Jak pisać i używać niestandardowych funkcji i bibliotek powłoki
- 4674
- 1322
- Tacjana Karpiński
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.ciiZapisz 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.
- « CloudStats - Najlepsze narzędzie do monitorowania serwera dla firm SaaS i wszystkich innych
- Jak sprawdzić zdalne porty są osiągalne za pomocą polecenia „NC” »