Bii O ṣe le Kọ ati Lo Awọn iṣẹ Ikarahun Aṣa ati Awọn ile-ikawe


Ni Linux, awọn iwe afọwọkọ ikarahun ṣe iranlọwọ fun wa ni ọpọlọpọ awọn ọna oriṣiriṣi pẹlu ṣiṣe tabi paapaa adaṣe adaṣe awọn iṣẹ iṣakoso eto kan, ṣiṣẹda awọn irinṣẹ laini aṣẹ pipaṣẹ ati ọpọlọpọ diẹ sii.

Ninu itọsọna yii, a yoo ṣe afihan awọn olumulo Lainos tuntun nibiti lati gbẹkẹle igbẹkẹle awọn iwe afọwọkọ ikarahun aṣa, ṣalaye bi o ṣe le kọ awọn iṣẹ ikarahun aṣa ati awọn ile ikawe, lo awọn iṣẹ lati awọn ile ikawe ni awọn iwe afọwọkọ miiran.

Ibi ti lati fipamọ Awọn iwe afọwọkọ ikarahun

Lati le ṣiṣẹ awọn iwe afọwọkọ rẹ laisi titẹ ọna kikun/idi, wọn gbọdọ wa ni fipamọ ni ọkan ninu awọn ilana ilana ni ayika ayika $PATH.

Lati ṣayẹwo $PATH rẹ, gbekalẹ aṣẹ ni isalẹ:

$ echo $PATH

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

Ni deede, ti bin bin ba wa ninu itọsọna ile awọn olumulo, o wa ni aifọwọyi ninu $PATH rẹ. O le tọju awọn iwe afọwọkọ ikarahun rẹ nibi.

Nitorinaa, ṣẹda itọsọna bin (eyiti o le tun tọju awọn iwe afọwọkọ Perl, Awk tabi Python tabi eyikeyi awọn eto miiran):

$ mkdir ~/bin

Nigbamii, ṣẹda itọsọna kan ti a pe ni lib (kukuru fun awọn ile ikawe) nibi ti iwọ yoo tọju awọn ikawe tirẹ. O tun le tọju awọn ile-ikawe fun awọn ede miiran bii C, Python ati bẹbẹ lọ, ninu rẹ. Labẹ rẹ, ṣẹda itọsọna miiran ti a pe ni sh; eyi yoo ṣe pataki fun ọ ni awọn ile-ikawe ikarahun:

$ mkdir -p ~/lib/sh 

Ṣẹda Awọn iṣẹ Ikarahun tirẹ ati Awọn ile-ikawe

Iṣẹ iṣẹ ikarahun jẹ ẹgbẹ awọn aṣẹ ti o ṣe iṣẹ pataki kan ninu iwe afọwọkọ kan. Wọn ṣiṣẹ bakanna si awọn ilana, awọn abẹ-iṣẹ ati awọn iṣẹ ni awọn ede siseto miiran.

Ilana fun kikọ iṣẹ kan ni:

function_name() { list of commands }

Fun apẹẹrẹ, o le kọ iṣẹ kan ninu iwe afọwọkọ kan lati fihan ọjọ bi atẹle:

showDATE() {date;}

Ni gbogbo igba ti o ba fẹ ṣe afihan ọjọ, nirọrun pe iṣẹ loke lilo orukọ rẹ:

$ showDATE

Ile-ikawe ikarahun jẹ iwe afọwọkọ ikarahun kan, sibẹsibẹ, o le kọ ile-ikawe kan lati tọju awọn iṣẹ rẹ nikan ti o le pe nigbamii lati awọn iwe afọwọkọ ikarahun miiran.

Ni isalẹ jẹ apẹẹrẹ ti ile-ikawe kan ti a pe ni libMYFUNCS.sh ninu itọsọna ~/lib/sh mi pẹlu awọn apẹẹrẹ diẹ sii ti awọn iṣẹ:

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

Fipamọ faili naa ki o jẹ ki iwe afọwọkọ ṣiṣẹ.

Bii O ṣe le pe Awọn iṣẹ Lati Ikawe kan

Lati lo iṣẹ kan ninu lib, o nilo lati akọkọ ni gbogbo pẹlu lib ninu iwe afọwọkọ ibi ti iṣẹ yoo ṣee lo, ni fọọmu ti o wa ni isalẹ:

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

Nitorinaa iwọ yoo lo iṣẹ atẹjadeUSERDETS lati lib ~/lib/sh/libMYFUNCS.sh ninu iwe afọwọkọ miiran bi a ṣe han ni isalẹ.

O ko ni lati kọ koodu miiran ninu iwe afọwọkọ yii lati tẹ awọn alaye olumulo kan pato, jiroro pe iṣẹ ti o wa.

Ṣii faili tuntun kan pẹlu orukọ idanwo.sh:

#!/bin/bash 

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

#use function from lib
printUSERDETS

#exit script
exit 0

Fipamọ rẹ, lẹhinna jẹ ki iwe afọwọkọ ṣiṣẹ ati ṣiṣe rẹ:

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

Ninu nkan yii, a fihan ọ ibiti o le gbekele awọn iwe afọwọkọ ikarahun, bii o ṣe le kọ awọn iṣẹ ikarahun tirẹ ati awọn ile ikawe, pe awọn iṣẹ lati awọn ile ikawe ni awọn iwe afọwọkọ ikarahun deede.

Nigbamii ti, a yoo ṣalaye ọna iwaju ti tito leto Vim bi IDE fun iwe afọwọkọ Bash. Titi di igba naa, nigbagbogbo wa ni asopọ si TecMint ati tun pin awọn ero rẹ nipa itọsọna yii nipasẹ fọọmu esi ni isalẹ.