Kako pisati in uporabljati funkcije in knjižnice lupine po meri
V Linuxu nam lupinski skripti pomagajo na toliko različnih načinov, vključno z izvajanjem ali celo avtomatizacijo nekaterih nalog skrbništva sistema, ustvarjanjem preprostih orodij ukazne vrstice in še veliko več.
V tem priročniku bomo novim uporabnikom Linuxa pokazali, kje naj zanesljivo shranjujejo skripte lupine po meri, razložili, kako napisati funkcije lupine po meri in knjižnice, uporabiti funkcije iz knjižnic v drugih skriptih.
Kje shraniti skripte lupine
Če želite izvajati skripte, ne da bi vnesli celotno/absolutno pot, jih je treba shraniti v enega od imenikov v spremenljivki okolja $PATH.
Če želite preveriti $PATH, izda spodnji ukaz:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Če običajno imenik obstaja v domačem imeniku uporabnikov, je samodejno vključen v njegov/njen $PATH. Tu lahko shranite svoje skripte lupine.
Zato ustvarite imenik bin (kamor lahko shranite tudi skripte Perl, Awk ali Python ali katere koli druge programe):
$ mkdir ~/bin
Nato ustvarite imenik z imenom lib (okrajšava za knjižnice), kjer boste hranili lastne knjižnice. V njem lahko shranite tudi knjižnice za druge jezike, kot so C, Python in tako naprej. Pod njim ustvarite še en imenik, imenovan sh; to bo še posebej shranilo vaše knjižnice lupine:
$ mkdir -p ~/lib/sh
Ustvarite lastne funkcije in knjižnice lupine
Funkcija lupine je skupina ukazov, ki v skriptu izvajajo posebno nalogo. Delujejo podobno kot postopki, podprogrami in funkcije v drugih programskih jezikih.
Sintaksa za pisanje funkcije je:
function_name() { list of commands }
Na primer, lahko v skript napišete funkcijo, ki bo prikazala datum na naslednji način:
showDATE() {date;}
Vsakič, ko želite prikazati datum, preprosto prikličite zgornjo funkcijo z njenim imenom:
$ showDATE
Knjižnica lupine je preprosto lupinski skript, vendar lahko knjižnico napišete tako, da shrani samo vaše funkcije, ki jih lahko pozneje pokličete iz drugih skriptov lupine.
Spodaj je primer knjižnice z imenom libMYFUNCS.sh v mojem imeniku ~/lib/sh z več primeri funkcij:
#!/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 }
Shranite datoteko in naredite skript izvršljiv.
Kako priklicati funkcije iz knjižnice
Če želite uporabiti funkcijo v lib, morate najprej vključiti lib v skript lupine, kjer bo funkcija uporabljena, v spodnji obliki:
$ ./path/to/lib OR $ source /path/to/lib
Torej bi uporabili funkcijo printUSERDETS iz lib ~/lib/sh/libMYFUNCS.sh v drugem skriptu, kot je prikazano spodaj.
Za tiskanje podrobnosti o določenem uporabniku vam v tem skriptu ni treba napisati druge kode, preprosto pokličite obstoječo funkcijo.
Odprite novo datoteko z imenom test.sh:
#!/bin/bash #include lib . ~/lib/sh/libMYFUNCS.sh #use function from lib printUSERDETS #exit script exit 0
Shranite ga, nato naredite skript izvedljiv in ga zaženite:
$ chmod 755 test.sh $ ./test.sh
V tem članku smo vam pokazali, kam zanesljivo shraniti skripte lupine, kako napisati lastne funkcije lupine in knjižnice, priklicati funkcije iz knjižnic v običajnih skriptih lupine.
Nato bomo razložili neposreden način konfiguriranja Vima kot IDE za skriptiranje Bash. Do takrat ostanite vedno povezani s TecMintom in delite svoje misli o tem vodniku prek spodnjega obrazca za povratne informacije.