Bii o ṣe le lo awọn iṣẹ ni Bash

Bii o ṣe le lo awọn iṣẹ ni Bash nipa lilo orisun ikarahun Unix yii, ede kọnputa ti o ni ibamu pẹlu POSIX. Gẹgẹbi ede, iṣẹ rẹ ni itumọ ti awọn aṣẹ Linux, gbigba wa laaye lati ṣe adaṣe awọn ilana atunwi wa ati tun ṣẹda awọn aṣẹ lati awọn aṣẹ eto ṣiṣe. Ninu nkan yii a yoo ṣe atunyẹwo bii o ṣe le lo awọn iṣẹ ni bash. Mo ṣeduro kika nkan naa bawo ṣẹda awọn iwe afọwọkọ tirẹ nipa lilo bash.

Ninu iwe afọwọkọ ti a dabaa, a lo ede Bash lati wa faili kan, mọ orukọ rẹ. Fun eyi a yoo lo awọn wa aṣẹ ṣugbọn pẹlu iranlọwọ ti awọn iṣẹ ti tẹlẹ ṣalaye ninu iwe afọwọkọ ti a sọ. O ni lati ṣe akiyesi iyasọtọ tabi aropin ti Bash ti ko si ni gbogbo awọn ede: lati pe iṣẹ kan o gbọdọ ṣalaye tẹlẹ.

Setumo awọn iṣẹ

Awọn ọna meji lo wa lati ṣalaye awọn iṣẹ: pẹlu tabi laisi ikede iṣẹ:

function nombre_funcion () 
{
    # codigo
}

tabi omiiran yii, eyiti o jẹ ọkan ti Mo lo bi iwọ yoo rii nigbamii.

nombre_funcion ()
{
    # codigo
}

Tun Bash tun pese ọna lati kọja awọn ipele ati awọn abajade pada. ti a yoo rii ni awọn nkan iwaju.

#!/usr/bin/env bash

# ~/.bin/encontrar
# encuentra archivos a partir de la descripción de su nombre en un directorio específico
#
# Por Pedro Ruiz Hidalgo
# version 1.0.0
# Copyright © enero 2017
#
#

EXIT_OK=0
EXIT_BAD=66

PATRON=$1
DIRECTORIO=$2

autor ()
{
 echo -e "\nPedro Ruiz Hidalgo @petrorum. Copyright © 2017\n"
}

ayuda ()
{
 echo -e "\nencontrar [PATRON] [DIRECTORIO]\n"
} 

noparams ()
{
 echo -e "\nSon necesarios dos parámetros\nencontrar -h para ayuda\n"
 read -p "¿Quieres ver la ayuda? (S|s)" -n 1 -r
 if [[ $REPLY =~ ^[Ss]$ ]];
    then
       echo ""
       ayuda
 fi
}

nodir ()
{
 echo -e "\nDirectorio no Existe\n"
}

if [[ $PATRON == "-h" ]];
then 
 ayuda
 exit $EXIT_OK
fi

if [[ $PATRON == "-a" ]];
then 
 autor
 exit $EXIT_OK
fi

if [ $# -lt 2 ];
then
 noparams
else
 if [ -d $DIRECTORIO ];
 then
 echo ""
 find $DIRECTORIO -name $PATRON*
 echo ""
 exit $?
 else 
 nodir 
 exit EXIT_BAD
 fi
fi


Itupalẹ iwe afọwọkọ

Awọn asọye

Fun bash gbogbo ilana ti o pari ni aṣeyọri gbọdọ ni koodu “0” bi ifihan agbara kan. Awọn ila 12 ati 13 ṣalaye awọn koodu aṣiṣe ti a ṣakoso EXIT_OK fun aṣeyọri y EXIT_BAD fun ijade lori ikuna.

Ni awọn ila 15 ati 16, awọn oniyipada PATTERN ati DIRECTORY ni a fi sọtọ akọkọ ($ 1) ati keji ($ 2) ti o han loju laini aṣẹ lẹhin orukọ ti iwe afọwọkọ naa, bi a yoo ṣe rii nigbamii ti a ba ṣiṣẹ.

Ni ìlà 18 a ṣẹda iṣẹ akọkọ wa. Iṣẹ ti a pe ni «onkọwe» ṣe afihan awọn aṣẹkikọ akosile nigba ti a ba pe pẹlu ariyanjiyan "-a" bi o ṣe le rii ninu if ti o wa lori awọn ila 50 ~ 54. Ariyanjiyan naa "-ati" lati ila 23 ngbanilaaye lati fihan lẹsẹsẹ ti “ila atẹle” nipa fifi koodu si “\ n”.

Ipe si awọn noparams (awọn ila 28 ~ 37) ni idiyele ti iṣakoso awọn iṣẹlẹ ti o gbọdọ waye nigbati a pe iwe afọwọkọ laisi awọn ipilẹ kankan. A fihan, ti o wa ni pipade daradara laarin awọn koodu laini tuntun, ifiranṣẹ ti o tọka pe a gbọdọ ṣe iwe afọwọkọ pẹlu awọn ipilẹ meji, lẹhinna aṣayan (laini 31) ti han lati lo ka O tọ ọ lati tẹ “S” tabi “s” ni ọran ti o fẹ fi iranlọwọ han. Ni laini 32 a sọ ni itumọ ọrọ gangan: 'ti idahun naa (ti o wa si wa ninu oniyipada $ SISE) ni eyikeyi ninu awọn ohun kikọ ti o tobi tabi kekere ', lẹhinna (laini 33) fihan laini ofo kan (laini 34) ati ṣe iṣẹ iranlọwọ (awọn ila 23 ~ 26).

Iṣẹ nodir (awọn ila 39 ~ 42) ni yoo ṣiṣẹ nigba ti a ba rii pe itọsọna nibiti a ti n gbiyanju wiwa ko si.

Iṣẹ iṣe

Pẹlu eyi a ti ni tẹlẹ ṣalaye gbogbo awọn iṣẹ pataki lati ṣe eto wa, eyiti o bẹrẹ gangan lori laini 44, ṣayẹwo ti o ba jẹ pe akọkọ ninu awọn ipele ti iwe afọwọkọ gba ni “-h”, ti o ba jẹ otitọ, ṣe iṣẹ iranlọwọ ati awọn ijade ti o nfihan ifopinsi deede.

Ti PATTERN (akọkọ paramita bi a ti ṣe apejuwe rẹ ni laini 15) jẹ "-a", onkọwe yoo han ni atẹle siseto kanna ti a ṣalaye ninu paragira ti tẹlẹ fun aṣayan “-h”.

Lori ila 56 o ti ṣakoso pe a ko gba kere ju awọn ipele mejiNi ọran yii, a ṣe iṣẹ iṣẹ noparams, lẹhinna, ninu if ti laini 60 a wa ti itọsọna ti a fẹ ṣe lori wiwa naa wa, ti o ba wa, laini ofo kan ti han, awọn wa aṣẹ pẹlu adirẹsi ti itọsọna lori eyiti a fẹ ṣe iwadi ti atẹle nipa apẹẹrẹ (ibẹrẹ orukọ ti faili ti a n wa) laini ofo tuntun ati lilo ijade $? a fi igbẹkẹle iṣẹjade ti iwe afọwọkọ wa si abajade ti a ṣe nipasẹ wiwa. Ni irú majemu ti aye liana jẹ eke (laini 67) a ṣe ipe si iṣẹ nodir ati a jade ni afihan ifopinsi ajeji.

Ipaniyan ati idanwo

$ encontrar
$ encontrar -a
$ encontrar -h
$ encontrar index aljflaskjf #directorio no existe
$ encontrar index public_html
$

En atẹle awọn nkan nipa Bash a yoo rii awọn ilana fun lo awọn iṣiro ninu awọn iṣẹA yoo tun rii bi a ṣe le ṣe ṣe alaye data pada lati kanna.

Mo nireti ati nireti pe ifiweranṣẹ yii ti wulo fun ọ.


Awọn akoonu ti nkan naa faramọ awọn ilana wa ti awọn ilana olootu. Lati jabo aṣiṣe kan tẹ nibi.

Ọrọìwòye kan, fi tirẹ silẹ

Fi ọrọ rẹ silẹ

Adirẹsi imeeli rẹ yoo ko le ṣe atejade.

*

*

  1. Lodidi fun data naa: Miguel Ángel Gatón
  2. Idi ti data naa: SPAM Iṣakoso, iṣakoso ọrọ asọye.
  3. Ofin: Iyọọda rẹ
  4. Ibaraẹnisọrọ data: Awọn data kii yoo ni ifọrọhan si awọn ẹgbẹ kẹta ayafi nipasẹ ọranyan ofin.
  5. Ibi ipamọ data: Alaye data ti o gbalejo nipasẹ Awọn nẹtiwọọki Occentus (EU)
  6. Awọn ẹtọ: Ni eyikeyi akoko o le ni opin, gba pada ki o paarẹ alaye rẹ.

  1.   josa wi

    Hi,
    gan awon ati ki o gidigidi ko o.
    O kan akọsilẹ kan; a $ nsọnu lori laini 68 niwaju oniyipada EXIT_BAD.
    Emi yoo tẹsiwaju lati kọ ẹkọ dajudaju pẹlu awọn nkan rẹ.