Kā rakstīt un izmantot pielāgotas čaulas funkcijas un bibliotēkas


Linux čaulas skripti mums palīdz tik dažādos veidos, ieskaitot noteiktu sistēmas administrēšanas uzdevumu veikšanu vai pat automatizēšanu, vienkāršu komandrindas rīku izveidi un daudz ko citu.

Šajā rokasgrāmatā mēs parādīsim jaunajiem Linux lietotājiem, kur droši glabāt pielāgotus čaulas skriptus, paskaidrot, kā rakstīt pielāgotas čaulas funkcijas un bibliotēkas, izmantot bibliotēku funkcijas citos skriptos.

Kur glabāt čaulas skriptus

Lai palaistu skriptus, neievadot pilnu/absolūtu ceļu, tie jāglabā vienā no vides mainīgā $PATH direktorijiem.

Lai pārbaudītu $PATH, izsniedziet tālāk norādīto komandu:

$ echo $PATH

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

Parasti, ja direktoriju tvertne pastāv lietotāju mājas direktorijā, tā tiek automātiski iekļauta viņa/viņas $PATH. Šeit varat glabāt savus čaulas skriptus.

Tāpēc izveidojiet atkritumu direktoriju (kurā var glabāt arī Perl, Awk vai Python skriptus vai citas programmas):

$ mkdir ~/bin

Pēc tam izveidojiet direktoriju lib (saīsinājums bibliotēkām), kurā glabājat savas bibliotēkas. Tajā varat arī glabāt bibliotēkas citām valodām, piemēram, C, Python un tā tālāk. Zem tā izveidojiet citu direktoriju ar nosaukumu sh; tas īpaši glabās jūsu čaulas bibliotēkas:

$ mkdir -p ~/lib/sh 

Izveidojiet savas čaulas funkcijas un bibliotēkas

Apvalka funkcija ir komandu grupa, kas skriptā veic īpašu uzdevumu. Tie darbojas līdzīgi procedūrām, apakšprogrammām un funkcijām citās programmēšanas valodās.

Funkcijas rakstīšanas sintakse ir šāda:

function_name() { list of commands }

Piemēram, skriptā varat ierakstīt funkciju, lai parādītu datumu šādi:

showDATE() {date;}

Katru reizi, kad vēlaties parādīt datumu, vienkārši izsauciet iepriekš minēto funkciju, izmantojot tās nosaukumu:

$ showDATE

Apvalka bibliotēka ir vienkārši čaulas skripts, tomēr bibliotēku var rakstīt tikai to funkciju glabāšanai, kuras vēlāk varat izsaukt no citiem čaulas skriptiem.

Zemāk ir bibliotēkas ar nosaukumu libMYFUNCS.sh piemērs direktorijā ~/lib/sh ar vairāku funkciju piemēriem:

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

Saglabājiet failu un izveidojiet skriptu izpildāmu.

Kā izsaukt funkcijas no bibliotēkas

Lai izmantotu funkciju lib, vispirms zemāk redzamajā formā ir jāiekļauj lib čaulas skriptā, kurā tiks izmantota funkcija:

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

Tātad jūs izmantotu funkciju printUSERDETS no lib ~/lib/sh/libMYFUNCS.sh citā skriptā, kā parādīts zemāk.

Lai drukātu konkrēta lietotāja informāciju, šajā skriptā nav jāraksta cits kods, vienkārši izsauciet esošu funkciju.

Atveriet jaunu failu ar nosaukumu test.sh:

#!/bin/bash 

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

#use function from lib
printUSERDETS

#exit script
exit 0

Saglabājiet to, pēc tam izveidojiet skriptu izpildāmu un palaidiet to:

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

Šajā rakstā mēs parādījām, kur droši glabāt čaulas skriptus, kā rakstīt savas čaulas funkcijas un bibliotēkas, izsaukt funkcijas no bibliotēkām parastajos čaulas skriptos.

Tālāk mēs izskaidrosim tiešu veidu, kā konfigurēt Vim kā IDE Bash skriptiem. Līdz tam vienmēr sazinieties ar TecMint un dalieties savās domās par šo ceļvedi, izmantojot tālāk sniegto atsauksmju veidlapu.