Hvernig á að skrifa og nota sérsniðnar skeljaraðgerðir og bókasöfn


Í Linux hjálpa skeljaforskriftir okkur á svo marga mismunandi vegu, þar á meðal að framkvæma eða jafnvel sjálfvirka ákveðin kerfisstjórnunarverkefni, búa til einföld skipanalínuverkfæri og margt fleira.

Í þessari handbók munum við sýna nýjum Linux notendum hvar á áreiðanlegan hátt á að geyma sérsniðin skeljaforskrift, útskýra hvernig á að skrifa sérsniðnar skeljaaðgerðir og bókasöfn, nota aðgerðir frá bókasöfnum í öðrum forskriftum.

Hvar á að geyma skeljaforskriftir

Til að keyra forskriftirnar þínar án þess að slá inn fulla/algera slóð verða þau að vera geymd í einni af möppunum í PATH umhverfisbreytunni.

Til að athuga PATH þinn, gefur út skipunina hér að neðan:

$ echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

Venjulega, ef möppuhólfið er til í heimaskrá notenda, er það sjálfkrafa innifalið í PATH hans/hennar. Þú getur geymt skeljaforskriftirnar þínar hér.

Þess vegna skaltu búa til bin möppuna (sem getur einnig geymt Perl, Awk eða Python forskriftir eða önnur forrit):

$ mkdir ~/bin

Næst skaltu búa til möppu sem heitir lib (stutt fyrir bókasöfn) þar sem þú geymir þín eigin bókasöfn. Þú getur líka geymt bókasöfn fyrir önnur tungumál eins og C, Python og svo framvegis í því. Undir það skaltu búa til aðra möppu sem heitir sh; þetta mun sérstaklega geyma þér skeljasöfn:

$ mkdir -p ~/lib/sh 

Búðu til þínar eigin skeljaraðgerðir og bókasöfn

Skeljaaðgerð er hópur skipana sem framkvæma sérstakt verkefni í handriti. Þeir virka á svipaðan hátt og verklagsreglur, undirvenjur og aðgerðir á öðrum forritunarmálum.

Setningafræðin til að skrifa fall er:

function_name() { list of commands }

Til dæmis geturðu skrifað fall í handrit til að sýna dagsetninguna sem hér segir:

showDATE() {date;}

Í hvert skipti sem þú vilt sýna dagsetningu skaltu einfaldlega kalla á aðgerðina hér að ofan með því að nota nafnið:

$ showDATE

Skeljasafn er einfaldlega skeljaforskrift, en þú getur skrifað bókasafn til að geyma aðeins aðgerðir þínar sem þú getur seinna hringt í úr öðrum skeljaforskriftum.

Hér að neðan er dæmi um bókasafn sem heitir libMYFUNCS.sh í ~/lib/sh möppunni minni með fleiri dæmum um aðgerðir:

#!/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
}

Vistaðu skrána og gerðu handritið keyranlegt.

Hvernig á að kalla fram aðgerðir úr bókasafni

Til að nota aðgerð í lib þarftu fyrst og fremst að hafa lib með í skeljaskriftinni þar sem aðgerðin verður notuð, á formi hér að neðan:

$ ./path/to/lib
OR
$ source /path/to/lib

Þannig að þú myndir nota aðgerðina printUSERDETS frá lib ~/lib/sh/libMYFUNCS.sh í öðru handriti eins og sýnt er hér að neðan.

Þú þarft ekki að skrifa annan kóða í þetta handrit til að prenta upplýsingar tiltekins notanda, hringdu einfaldlega í núverandi aðgerð.

Opnaðu nýja skrá með nafninu test.sh:

#!/bin/bash 

#include lib
.  ~/lib/sh/libMYFUNCS.sh

#use function from lib
printUSERDETS

#exit script
exit 0

Vistaðu það, gerðu skriftuna keyranlega og keyrðu það:

$ chmod 755 test.sh
$ ./test.sh 

Í þessari grein sýndum við þér hvar á að geyma skeljaforskriftir á áreiðanlegan hátt, hvernig á að skrifa eigin skeljaaðgerðir og bókasöfn, kalla fram aðgerðir úr bókasöfnum í venjulegum skeljaforskriftum.

Næst munum við útskýra beina leið til að stilla Vim sem IDE fyrir Bash forskriftir. Þangað til, vertu alltaf tengdur TecMint og deildu einnig hugsunum þínum um þessa handbók í gegnum athugasemdaformið hér að neðan.