Funda indlela yokubala unobumba we-DNI usebenzisa iskripthi seBash

Emva kokwanelisa iimfuno for ube nakho ukuqhuba i-bash script, kwaye uqonde uyichaza njani imisebenzi, funda indlela buyisela amaxabiso kwimisebenzi ye-bash. Ngale nto siza kuyila inkqubo encinci kodwa enamandla― eBhash Bala oonobumba be-DNI. Ndineendaba ezimnandi: NakwaBash unakho fakela Windows 10. Ngale nto inokongezwa onke amandla eLinux kwiinkqubo ezisebenzayo, masithi ... zahlukile.

Okokuqala, kufuneka qonda indlela Imigca, njengalo naluphi na ulwimi, olunokubakho Buyisela iinxalenye zomtya ukusuka ekubonakalisweni kwetyathanga, indawo kunye nobude becandelo. Makhe sijonge umzekelo wale ndlela yokuziphatha. Senza iskripthi sethu nge

$ touch prueba_substring
$ 

Emva koko sidibanisa le khowudi ilandelayo kunye nomhleli wakho owuthandayo. Kwindlela yesiphelo umhleli wam endiwuthandayo mcedit. Kodwa mva nje ndiyabona ukuba i-nano ifumana amandla.

 
#!/usr/bin/env bash 
# Demo comportamiento de substrings en Bash 
# Pedro Ruiz Hidalgo 
# version 1.0.0 
# Febrero 2017 

ret="\n" 
CADENA="siempre uso Linux con Ubuntu y Ubunlog, claro!" 
#      "0123456789012345678901234567890123456789012345" 
#      "          1         2         3         4     " 
# (usa la regla para medir los caracteres) 

echo -e $ret ${CADENA:12} 
echo -e $ret ${CADENA:12:5} 
echo -e $ret "Aprendo en ${CADENA:31:7}" 
exit 0 

Yongeza iimvume kunye nokwenza ngolu hlobo:

$ chmod +x prueba_substring
$ ./prueba_substring
$

Kuya kufuneka, ukuba yonke into ihambe kakuhle, ibuyise iziphumo ezilandelayo:

 Linux Con Ubuntu y Ubunlog, claro!

 Linux

 Aprendo en Ubunlog

Umsebenzi ongaphantsi

Njengoko ubona ngasentla Ndibonisile imigca ye-13 ukuya kwe-15 ukusuka kwiskripthi kunye nenyathelo ukuya chaza ikhowudi yakho. Echo kunye umda "-e" masibonise umgca womlinganiswa olandelayoSichaze lo mlinganiswa kwi umgca we-7 kwaye wabelwa kuguquguquko «ret».

Umgca we-13: Ndibonisa i-substring (umtya osezantsi) ye-CHAIN ​​eguquguqukayo, echazwe kumgca we-8, ukusuka kwindawo 12. Ngamaxesha onke ukuqala ukubala ukusuka kwindawo 0.

Umgca we-14: Ukusuka Indawo ye-12 ye-CHAIN ​​eyahlukileyo, ndibonisa icandelo le-5. Njengoko uyakuqinisekisa ukuba oku kuyahambelana Imiyalezo esezantsi "Linux".

Umgca we-15: Ndiqamba a umtya omtsha ovalelwe kwizicatshulwa Ndiqala njengo «Ndifunda kwi«, ukuqhubeka nomtya we-CHAIN ​​okwahlukileyo ukusuka kwindawo 31, ukuthatha icandelo le-7: Oku kuyahambelana «Ubunlog».

Imisebenzi yokubuyisela emva

Inkqubo yokubuyisa iBash iveliswa ngumyalelo "wokubuya", nangona, xa kufuneka siyithelekise ne-Bash eyahlukileyo, isebenzisa indlela "engaqhelekanga", ekufuneka uyiqhelile. Makhe sijonge lo mzekelo ulandelayo:

#!/usr/bin/env bash

function suma(){
  local a=$1
  local b=$2
  return $(( $a + $b ))
}

suma 12 23
retorno=$?
echo $retorno

Imisebenzi kufuneka ihlale ichazwa ngaphambi kokuyisebenzisa eBash, ke, emva kwe Shebang sibhengeza isibalo somsebenzi, kumgca 4 Sichaza ngokusebenzisa «yendawo» isabelo separameter yokuqala ($ 1) eyahlukileyo "a". Inkqubo efanayo kumgca wesi-5, apho sabela ipharamitha yesibini ($ 2) eyahlukileyo «b». Kumgca wesithoba sibiza umsebenzi wokudibanisa ngeeparameter ezimbini eziya kuguqulwa yindlela echazwe kwi eziguquguqukayo "a" kunye "b" kwaye ngo "buyela" sizibuyisa zongezwa, njengoko kunokubonwa ngokulula kwimiyalelo yokusebenza.

Sabela uguquko "ukubuya" kwi Umgca we-10 sisiphumo sokwenziwa kwesambuku somsebenzi.

Emva kokufunda nokuqonda indlela apho ukubuya kwamaxabiso kunye nokunikezelwa kwezinto eziguquguqukayo kuyenziwa Makhe siye kubona inkqubo yethu ukubalwa kweeleta ze-DNI kunye neBash.

Iskripthi sokubala iileta ze-DNI kunye neBash

#!/usr/bin/env bash

nl="\n"

LETRAS="TRWAGMYFPDXBNJZSQVHLCKEO"
NORMAL=0
ERROR=66

if [ $# -lt 1 ];
then
	echo -e "$nl Cálculo DNI, introduce número$nl"
	read -r ndni
	[ -z "${ndni//[0-9]}" ] && [ -n "$ndni" ] || echo "Sólo números" && exit $ERROR
else
	ndni=$1
fi

modulo ()
{
	return $(( $ndni  % 23 ))
}

modulo ndni
mod=$?
echo $ndni-${LETRAS:$mod:1}
exit $NORMAL

La Ileta ye-DNI yethu Iyahambelana ne- imodyuli yenombolo 23. Yi le, sisahlula inani ngama-23 y endaweni yokujonga i-quotient, sijonga lonke icandelo. Amanye amagama, njenge amanani ahlukaniswe ngama-23 aya kunika uziro, ileta leyo ingqamana nayo yi «T», ukusukela ngoku isikhundla 0, njengoko sibonile kwiskripthi esingentla, Zonke ii-substrings ziqala ukubala ukusuka kwi-zero. Oko kukuthi, ngemodyuli siya kuhlala sifumana amanani phakathi ko-0 (unobumba "T") kunye no-22 (unobumba "O"). KwiBhash, njengakwezinye iilwimi Imodyuli ifunyenwe ngokusebenzisa umqhubi wepesenti «%».

Kulo umgca 5 sichaza oonobumba ngolandelelwano lwakho. Icacile, iodolo ayinakutshintshwa ukufumana iziphumo ezinokuthenjwa. Kwi if yomgca 9 Siyabuza ukuba xa ubiza iskripthi kukho inani njengeparameter. Ukuba akukho parameter, siyayicela kwikhibhodi kunye nemiyalelo kwimigca ye-11 ukuya kwi-13.

Kumgca wama-23 sibhekisa kwimodyuli yomsebenzi ngokusebenzisa ipharamitha ye «ndni» eyahlukileyo, nokuba sele iqokelelwe njengeparameter kwi-bash, okanye ngekhibhodi njengegalelo. Kumgca wama-24 ukubuya komsebenzi kunikezelwe kuguqulelo lwe- «mod». Kumgca we-25 mSibonisa inani, udwi kunye nonobumba ohambelana nendawo ngokokubalwa kwemodyuli kunye nomtya osezantsi.

Ukuvavanya iscript sethu se-DNI

$ ./dni 12345678
12345678-Z

Kulungile,

$ ./dni

 Cálculo DNI, Introduce número

Zonke iincwadi zeempendulo kufuneka zibandakanye "-a" ipharamitha yombhali kunye nenye "-h" ngoncedo kunye nes syntax. Njengoko sibonile kumanqaku angaphambili, okanye ndikushiya kuwe ukuze ungenzi ikhowudi ibe nzima ngakumbi.
Ndiyathemba kwaye ndiyathemba ukuba eli nqaku linomdla wakho.


Shiya uluvo lwakho

Idilesi yakho ye email aziyi kupapashwa. ezidingekayo ziphawulwe *

*

*

  1. Uxanduva lwedatha: UMiguel Ángel Gatón
  2. Injongo yedatha: Ulawulo lwe-SPAM, ulawulo lwezimvo.
  3. Umthetho: Imvume yakho
  4. Unxibelelwano lwedatha: Idatha ayizukuhanjiswa kubantu besithathu ngaphandle koxanduva lomthetho.
  5. Ukugcinwa kweenkcukacha
  6. Amalungelo: Ngalo naliphi na ixesha unganciphisa, uphinde uphinde ucime ulwazi lwakho.

  1.   Omar B.M. sitsho

    Molo, ngaba umntu othile angandinceda, ndifuna ukufaka i-lubuntu kwidesktop yam yakudala kodwa ayizukundivumela ndifakele nge-USB kwaye idvd drive yonakele, ndifuna ukufaka http://www.plop.at Ubuntu 16.04 LTS kodwa andazi ukuba ndenze njani. Enkosi

    1.    U-Pedro Ruiz Hidalgo obambe umfanekiso sitsho

      Omar,

      Njengoko sele ukhankanyile, le meko ayithembisi kakhulu: i-usb ayivumelekanga kwaye i-dvd drive yonakele. Kodwa nawe uphawule ukuba "ikhompyutha indala", oko kuthetha ukuba unento entsha. Zama ukubeka ufakelo kwi-hard drive kwikhompyuter yakho esebenzayo kwaye uzame ukuyifaka kuloo drive.

      Phendula nge quote

    2.    UCesar Delba sitsho

      Ngaba unayo ikhompyutha kunye nebhokisi ekhutshwayo? Nyusa i-hard drive yekhompyuter endala kwibhokisi ye-usb kwaye ususe idiski yokufaka.
      I-Linux kunye ne-Unix ayithathi ngqalelo i-hardware kwinqanaba lokuqalisa, onokubeka ngayo idiski kwakhona nge-linux efakiweyo.

    3.    Omar B.M. sitsho

      Enkosi kakhulu ndiyakuxelela ukuba into endiyenzileyo kukuhamba ukusuka ku-Ubuntu 16.04 ukuya kuLubuntu 16.04 ngaphakathi kwenkqubo efanayo hehe kwaye ke ikhompyuter yam yakudala ibisebenza kakuhle hehe imibuliso evela eColombia.