Otu esi ede ma jiri ọrụ Shell omenala na ọba akwụkwọ


Na Linux, scripts shei na-enyere anyị aka n'ọtụtụ ụzọ dị iche iche gụnyere ịrụ ọrụ ma ọ bụ ọbụna imezi ụfọdụ ọrụ nchịkwa sistemu, imepụta ngwa ahịrị iwu dị mfe na ọtụtụ ndị ọzọ.

N'ime ntuziaka a, anyị ga-egosi ndị ọrụ Linux ọhụrụ ebe ha ga-eji ntụkwasị obi chekwaa scripts shei omenala, kọwaa otu esi ede ọrụ shei omenala na ọba akwụkwọ, jiri ọrụ sitere na ọba akwụkwọ na edemede ndị ọzọ.

Ebe a ga-echekwa scripts Shell

Ka ị na-agba ọsọ scripts gị na-enweghị pịnye ụzọ zuru oke/zuru oke, a ga-echekwa ha n'otu akwụkwọ ndekọ aha na mgbanwe gburugburu PATH.

Iji lelee PATH gị, nye iwu dị n'okpuru:

$ echo $PATH

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

Dị ka ọ na-adịkarị, ọ bụrụ na akwụkwọ ndekọ aha dị na ndekọ ụlọ ndị ọrụ, a na-etinye ya ozugbo na PATH ya. Ị nwere ike ịchekwa scripts shei gị ebe a.

Ya mere, mepụta bin ndekọ (nke nwekwara ike ịchekwa script Perl, Awk ma ọ bụ Python ma ọ bụ mmemme ọ bụla):

$ mkdir ~/bin

Na-esote, mepụta ndekọ aha a na-akpọ lib (obere maka ọba akwụkwọ) ebe ị ga-edobe ọba akwụkwọ nke gị. Ị nwekwara ike idowe ọba akwụkwọ maka asụsụ ndị ọzọ dị ka C, Python na ndị ọzọ, na ya. N'okpuru ya, mepụta akwụkwọ ndekọ aha ọzọ a na-akpọ sh; Nke a ga-echekwa gị ụlọ ọba akwụkwọ shell:

$ mkdir -p ~/lib/sh 

Mepụta ọrụ Shell na ọba akwụkwọ nke gị

Ọrụ shei bụ otu iwu na-arụ ọrụ pụrụ iche na edemede. Ha na-arụ ọrụ n'otu aka ahụ na usoro, subroutines na ọrụ n'asụsụ mmemme ndị ọzọ.

Okwu syntax maka ide ọrụ bụ:

function_name() { list of commands }

Dịka ọmụmaatụ, ịnwere ike ide ọrụ na edemede iji gosi ụbọchị dịka ndị a:

showDATE() {date;}

Oge ọ bụla ịchọrọ igosipụta ụbọchị, kpọkuo ọrụ dị n'elu site na iji aha ya:

$ showDATE

Ọbá akwụkwọ shei bụ naanị edemede shei, agbanyeghị, ị nwere ike dee ọbá akwụkwọ iji chekwaa naanị ọrụ gị nke ị ga-emecha kpọọ site na edemede shei ndị ọzọ.

N'okpuru bụ ọmụmaatụ nke ọbá akwụkwọ a na-akpọ libMYFUNCS.sh na ndekọ ~/lib/sh m nwere ihe atụ nke ọrụ ndị ọzọ:

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

Chekwaa faịlụ ahụ ma mee ka edemede ahụ rụọ ọrụ.

Otu esi akpọku ọrụ site na ọba akwụkwọ

Iji jiri ọrụ dị na lib, ị ga-ebu ụzọ tinye lib na edemede shei ebe a ga-eji ọrụ ahụ, n'ụdị dị n'okpuru:

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

Yabụ ị ga-eji ọrụ printUSERDETS sitere na lib ~/lib/sh/libMYFUNCS.sh n'edemede ọzọ dị ka egosiri n'okpuru.

Ịkwesighi ide koodu ọzọ na edemede a ka ibipụta nkọwa nke onye ọrụ, naanị kpọọ ọrụ dị adị.

Mepee faịlụ ọhụrụ nwere aha test.sh:

#!/bin/bash 

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

#use function from lib
printUSERDETS

#exit script
exit 0

Chekwaa ya, wee mee ka edemede ahụ rụọ ọrụ wee mee ya:

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

N'isiokwu a, anyị gosiri gị ebe ị ga-atụkwasị obi na-echekwa scripts shei, otu esi ede ọrụ shei gị na ọba akwụkwọ, kpọọ ọrụ site na ọba akwụkwọ na scripts shei nkịtị.

Na-esote, anyị ga-akọwa ụzọ kwụ ọtọ maka ịhazi Vim ka ọ bụrụ IDE maka edemede Bash. Ruo mgbe ahụ, nọrọ na TecMint mgbe niile ma kesaa echiche gị gbasara ntuziaka a site na ụdị nzaghachi dị n'okpuru.