Kako pisati i koristiti prilagođene funkcije ljuske i knjižnice
U Linuxu nam ljuske skripte pomažu na toliko različitih načina, uključujući izvođenje ili čak automatizaciju određenih zadataka administracije sustava, stvaranje jednostavnih alata naredbenog retka i još mnogo toga.
U ovom ćemo uputstvu novim korisnicima Linuxa pokazati gdje pouzdano pohraniti prilagođene skripte ljuske, objasniti kako pisati prilagođene funkcije ljuske i knjižnice, koristiti funkcije iz knjižnica u drugim skriptama.
Gdje čuvati skripte školjke
Da bi se vaše skripte izvodile bez upisivanja pune/apsolutne staze, moraju se pohraniti u jedan od direktorija u varijabli okruženja $PATH.
Da biste provjerili svoj $PATH, izdajte naredbu u nastavku:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Uobičajeno, ako kanta za direktorij postoji u korisničkom kućnom direktoriju, automatski se uključuje u njegov/njezin $PATH. Ovdje možete pohraniti svoje skripte ljuske.
Stoga izradite bin direktorij (koji također može pohraniti Perl, Awk ili Python skripte ili bilo koji drugi program):
$ mkdir ~/bin
Zatim stvorite direktorij pod nazivom lib (kratica za knjižnice) u kojem ćete držati vlastite knjižnice. U njemu također možete držati knjižnice za druge jezike kao što su C, Python i tako dalje. Ispod nje stvorite još jedan direktorij zvan sh; ovo će posebno pohraniti vaše knjižnice školjki:
$ mkdir -p ~/lib/sh
Izradite vlastite funkcije i knjižnice školjke
Funkcija ljuske je skupina naredbi koje izvršavaju poseban zadatak u skripti. Rade slično procedurama, potprogramima i funkcijama u drugim programskim jezicima.
Sintaksa za pisanje funkcije je:
function_name() { list of commands }
Na primjer, u skriptu možete napisati funkciju koja će prikazati datum na sljedeći način:
showDATE() {date;}
Svaki put kad želite prikazati datum, jednostavno pozovite gornju funkciju koristeći njen naziv:
$ showDATE
Knjižnica ljuske je jednostavno skripta ljuske, međutim, knjižnicu možete napisati samo za pohranu vaših funkcija koje kasnije možete nazvati iz drugih skripti ljuske.
Ispod je primjer knjižnice koja se zove libMYFUNCS.sh u mom direktoriju ~/lib/sh s više primjera funkcija:
#!/bin/bash #Function to clearly list directories in PATH showPATH() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator for DIR in $PATH ; do echo $DIR ; done IFS="$oldifs" #restore old internal field separator } #Function to show logged user showUSERS() { echo -e “Below are the user logged on the system:\n” w } #Print a user’s details printUSERDETS() { oldifs="$IFS" #store old internal field separator IFS=: #specify a new internal field separator read -p "Enter user name to be searched:" uname #read username echo "" #read and store from a here string values into variables using : as a field delimiter read -r username pass uid gid comments 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 }
Spremite datoteku i učinite skriptu izvršnom.
Kako pozvati funkcije iz knjižnice
Da biste koristili funkciju u lib-u, prije svega morate uključiti lib u skriptu ljuske gdje će se funkcija koristiti, u donjem obliku:
$ ./path/to/lib OR $ source /path/to/lib
Dakle, koristili biste funkciju printUSERDETS iz lib ~/lib/sh/libMYFUNCS.sh u drugoj skripti kao što je prikazano dolje.
Ne morate u ovu skriptu upisivati drugi kod za ispis pojedinosti korisnika, jednostavno pozovite postojeću funkciju.
Otvorite novu datoteku s imenom test.sh:
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
Spremite ga, a zatim napravite skriptu izvršnom i pokrenite je:
$ chmod 755 test.sh $ ./test.sh
U ovom smo članku pokazali gdje pouzdano pohraniti skripte ljuske, kako napisati vlastite funkcije ljuske i knjižnice, pozvati funkcije iz knjižnica u normalnim skriptama ljuske.
Dalje ćemo objasniti izravan način konfiguriranja Vima kao IDE-a za Bash skriptiranje. Do tada, uvijek budite povezani s TecMintom i podijelite svoja razmišljanja o ovom vodiču putem obrasca za povratne informacije u nastavku.