Yadda ake amfani da ayyuka a cikin Bash

Yadda ake amfani da ayyuka a cikin Bash ta amfani da wannan tushen harsashin Unix, harsunan komputa mai dacewa da POSIX. A matsayin yare, aikinta shine fassara umarnin Linux, yana bamu damar sarrafa ayyukanmu na maimaita abubuwa ta atomatik kuma ƙirƙirar umarni daga umarnin tsarin aiki. A cikin wannan labarin za mu sake dubawa yadda ake amfani da ayyuka a cikin bash. Ina ba da shawarar karanta labarin yadda ƙirƙiri rubutunku ta amfani da bash.

A cikin rubutun da muke ba da shawara muna amfani da yaren Bash don bincika fayil, tare da sanin sunansa. Don wannan za mu yi amfani da sami umarni amma tare da taimakon ayyukan da aka bayyana a baya a cikin rubutun da aka faɗi. Dole ne ku yi la'akari da keɓancewa ko iyakancewar Bash da ba a cikin kowane yare: don kiran aiki dole ne a bayyana shi a baya.

Ayyade ayyuka

Akwai hanyoyi biyu don ayyana ayyuka: tare da ko ba tare da sanarwar aikin:

function nombre_funcion () 
{
    # codigo
}

ko kuma wannan wani, wanda shine nayi amfani dashi kamar yadda zaku gani nan gaba.

nombre_funcion ()
{
    # codigo
}

Hakanan Bash kuma yana samar da wata hanya don wuce sigogi da dawo da sakamako. cewa za mu gani a talifofi na gaba.

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


Nazarin rubutu

Ma'anar

Don bash duk tsarin da aka kammala cikin nasara dole ne ya sami lambar "0" azaman sigina. Layi na 12 da 13 sun ayyana lambobin kuskuren da aka sarrafa EXIT_OK don nasara y EXIT_BAD don fita kan rashin nasara.

A layuka 15 da 16, an sanya maɓuɓɓuka na PATTERN da DIRECTORY na farkon ($ 1) da na biyu ($ 2) waɗanda suka bayyana akan layin umarni bayan sunan rubutun, kamar yadda za mu gani a gaba idan muka aiwatar da shi.

A cikin layi 18 muna kirkirar aikinmu na farko. Aikin da ake kira «marubucin» yana nuna rubutun marubuci lokacin da muka kira shi tare da hujjar "-a" kamar yadda ake iya gani a cikin idan akan layi 50 ~ 54. Takaddama "-da" daga layi 23 yana bada damar nuna jerin «layin na gaba» ta hanyar sanya bayanai «\ n».

Kira zuwa noparams (layuka 28 ~ 37) shine ke kula da gudanar da abubuwan da zasu faru yayin da aka kira rubutun ba tare da wani sigogi ba. Muna nunawa, an haɗa shi da kyau tsakanin sabbin lambobin layin, saƙon da ke nuna cewa dole ne a aiwatar da rubutun tare da sigogi biyu, to zaɓi (layi 31) ya nuna don amfani karanta Yana nusar da ku danna "S" ko "s" idan kuna son nuna taimako. A layi na 32 a zahiri muna cewa: 'idan amsar (wannan ta zo mana a cikin mai canzawa $ AMSA) ya ƙunshi kowane ɗayan haruffan da ke babba ko ƙaramin rubutu ', sannan (layi na 33) ya nuna layin fanko (layi 34) kuma ya aiwatar da aikin taimakon (layin 23 ~ 26).

Za a kashe aikin nodir (layuka 39 ~ 42) lokacin da muka gano cewa kundin adireshin inda ake yunƙurin bincike ba ya wanzu.

Yanayi

Da wannan muke da riga bayyana duk ayyukan da ake bukata don gudanar da shirinmu, wanda a zahiri yake farawa akan layin 44, duba idan farkon sigogin da rubutun ya karɓa shine "-h", idan gaskiya ne, gudanar da aikin taimako kuma ƙofar da ke nuna alamar ƙaura ta al'ada.

Idan PATTERN (ma'aunin farko kamar yadda aka bayyana a layin 15) shine "-a", ana nuna marubucin ta bin tsarin da aka bayyana a sakin layi na baya don zaɓi "-h".

Akan layi 56 ana sarrafa shi cewa ba mu karɓi ƙasa da sigogi biyu baA wannan yanayin, ana aiwatar da aikin noparams, to a cikin layin 60 mun gano idan akwai kundin adireshin da muke so muyi bincike akansu, idan ya wanzu, ana nuna layin wofi, da sami umarni tare da adireshin kundin adireshin da muke son aiwatar da binciken wanda tsarin ya biyo baya (farkon sunan fayil ɗin da muke nema) sabon layi mara kyau kuma ta hanyar fita $? mun ba da amanar fitowar rubutunmu ga sakamakon da aka samo ta hanyar nema. Idan akwai yanayin kasancewar kundin adireshi karya ne (layin 67) muna yin kira zuwa ga aikin nodir kuma mun fita yana nuna alamar ƙare mahaukaci.

Kisa da gwaji

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

En bin labarai game da Bash za mu ga hanyoyin don yi amfani da sigogi a cikin ayyukaZa mu kuma ga yadda za a bayyana bayanan dawowa daga wannan.

Ina fata kuma ina fata cewa wannan rubutun ya kasance mai amfani a gare ku.


Bar tsokaci

Your email address ba za a buga. Bukata filayen suna alama da *

*

*

  1. Wanda ke da alhakin bayanan: Miguel Ángel Gatón
  2. Manufar bayanan: Sarrafa SPAM, sarrafa sharhi.
  3. Halacci: Yarda da yarda
  4. Sadarwar bayanan: Ba za a sanar da wasu bayanan ga wasu kamfanoni ba sai ta hanyar wajibcin doka.
  5. Ajiye bayanai: Bayanin yanar gizo wanda Occentus Networks (EU) suka dauki nauyi
  6. Hakkoki: A kowane lokaci zaka iyakance, dawo da share bayanan ka.

  1.   josea m

    Sannu,
    ban sha'awa sosai kuma a bayyane.
    Bayani kawai; wani $ ya ɓace a layin 68 a gaban mai canzawa EXIT_BAD.
    Zan ci gaba da koya tabbatacce tare da labaranku.