Kuinka kirjoittaa ja käyttää mukautettuja kuoritoimintoja ja kirjastoja


Linuxissa shell-komentosarjat auttavat meitä monin eri tavoin, mukaan lukien tiettyjen järjestelmänhallintatehtävien suorittaminen tai jopa automatisointi, yksinkertaisten komentorivityökalujen luominen ja paljon muuta.

Tässä oppaassa näytämme uusille Linux-käyttäjille, mihin mukautettuja komentosarjakomentosarjoja voidaan tallentaa luotettavasti, kerrotaan, kuinka kirjoitetaan mukautettuja kuoritoimintoja ja kirjastoja, käytetään kirjastojen toimintoja muissa komentosarjoissa.

Shell-komentosarjojen säilytyspaikat

Jotta komentosarjasi voidaan suorittaa kirjoittamatta täyttä/absoluuttista polkua, ne on tallennettava johonkin hakemistoon ympäristömuuttujassa $PATH.

Tarkista $PATH lähettämällä seuraava komento:

$ echo $PATH

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

Normaalisti, jos hakemistolokero on käyttäjien kotihakemistossa, se sisällytetään automaattisesti käyttäjän $PATH -kansioon. Voit tallentaa shell-komentosarjat täältä.

Siksi luo roskakorihakemisto (joka voi myös tallentaa Perl-, Awk- tai Python-komentosarjoja tai muita ohjelmia):

$ mkdir ~/bin

Luo seuraavaksi hakemisto nimeltä lib (lyhenne kirjastoista), jossa pidät omia kirjastojasi. Voit myös pitää kirjastoja muille kielille, kuten C, Python ja niin edelleen. Luo sen alle toinen hakemisto nimeltä sh; tämä tallentaa erityisesti shell-kirjastot:

$ mkdir -p ~/lib/sh 

Luo omat kuoritoiminnot ja kirjastot

Kuoritoiminto on joukko komentoja, jotka suorittavat erityistehtävän komentosarjassa. Ne toimivat samalla tavalla kuin muiden ohjelmointikielien menettelyt, aliohjelmat ja toiminnot.

Syntaksi funktion kirjoittamiseen on:

function_name() { list of commands }

Voit esimerkiksi kirjoittaa funktion komentosarjaan näyttämään päivämäärän seuraavasti:

showDATE() {date;}

Joka kerta, kun haluat näyttää päivämäärän, käytä vain yllä olevaa toimintoa käyttämällä sen nimeä:

$ showDATE

Shell-kirjasto on yksinkertaisesti shell-komentosarja, mutta voit kirjoittaa kirjaston vain sellaisten toimintojesi tallentamiseen, joihin voit myöhemmin soittaa muista shell-skripteistä.

Alla on esimerkki kirjastosta nimeltä libMYFUNCS.sh ~/lib/sh -hakemistossa, jossa on lisää esimerkkejä toiminnoista:

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

Tallenna tiedosto ja tee komentosarja suoritettavaksi.

Kuinka kutsua funktioita kirjastosta

Jos haluat käyttää funktiota lib: ssä, sinun on ensin sisällytettävä lib alla olevaan komentotulkkikomentoon, jossa funktiota käytetään:

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

Joten käyttäisit funktiota printUSERDETS lib ~/lib/sh/libMYFUNCS.sh: stä toisessa komentosarjassa alla olevan kuvan mukaisesti.

Sinun ei tarvitse kirjoittaa toista koodia tähän komentosarjaan tulostaaksesi tietyn käyttäjän tiedot, soita vain olemassa olevaan toimintoon.

Avaa uusi tiedosto nimellä test.sh:

#!/bin/bash 

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

#use function from lib
printUSERDETS

#exit script
exit 0

Tallenna se, tee sitten komentosarja suoritettavaksi ja suorita se:

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

Tässä artikkelissa näytimme sinulle, mihin säilyttää komentosarjakomentosarjat luotettavasti, miten kirjoitat omia komentotulkkitoimintojasi ja kirjastojasi, kutsutaan kirjastojen toimintoja normaaleihin komentotiedostoihin.

Seuraavaksi selitämme suoraviivaisen tavan määrittää Vim IDE: ksi Bash-komentosarjoille. Siihen asti, ole aina yhteydessä TecMintiin ja jaa myös ajatuksiasi tästä oppaasta alla olevan palautelomakkeen kautta.