Dzidza maitiro ekuverenga iyo DNI tsamba uchishandisa Bash script

Mushure mekugutsa iyo zvinodiwa nokuti kukwanisa kumhanya bash zvinyorwa, uye nzwisisa kutsanangura mashandiro, dzidza kuti sei dzoka tsika muzvinhu zve bash. Kune izvi isu tichagadzira diki ―asi simba― chirongwa muBash icho verenga mavara eDNI. Ndine mashoko akanaka: Bhash anogona futi kuiswa paWindows 10. Ne izvo zvinogona kuwedzerwa simba rese reLinux mune anoshanda masystem, ngatiti ... zvakasiyana.

Chekutanga pane zvese, isu tinofanirwa nzwisisa kuti iyo substrings, iyo, semumwe mutauro, ine mukana wekuti dzosera zvikamu zvetambo kubva pakuratidzwa kweketani, chinzvimbo uye kureba kwechikamu. Ngatitarisei pamuenzaniso weiyi hunhu. Isu tinogadzira yedu script ne

$ touch prueba_substring
$ 

Ipapo isu tinowedzera inotevera kodhi neyako yaunoda edhita. Mune terminal mode mupepeti wangu wandinoda mcedit. Asi munguva pfupi yapfuura ndinoona kuti nano iri kuwana simba.

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

Kuwedzera mvumo uye kuita seizvi:

$ chmod +x prueba_substring
$ ./prueba_substring
$

Izvo zvinofanirwa, kana zvese zvikafamba mushe, dzorera unotevera mhedzisiro:

 Linux Con Ubuntu y Ubunlog, claro!

 Linux

 Aprendo en Ubunlog

Substring Kushanda

Sezvauri kuona pamusoro Ini ndaratidza mitsara 13 kusvika 15 kubva pane iyo script uye nhanho kuenda ku tsanangura kodhi yako. ungira with the paramende "-e" rega kuratidza iyo mutsetse unotevera hunhu, takatsanangura hunhu mu mutsara 7 uye wakapihwa chinoshanduka «ret».

Mutsara wechi13: Ini ndinoratidza iyo substring (substring) ye CHAIN ​​kusiyanisa, kunotsanangurwa mumutsara 8, kubva pachinzvimbo 12. Nguva dzose uchitanga kuverenga kubva panzvimbo 0.

Mutsara 14: Kubva chinzvimbo 12 che CHAIN ​​musiyano, ini ndinoratidza chidimbu che5. Sezvo iwe uchizoongorora izvi zvinoenderana ne substring "Linux".

Mutsara 15: Ndinonyora a tambo nyowani yakavharirwa mune makotesheni Ini ndinotanga se «ini ndinodzidza mu«, kuenderera mberi ne substring yeiyo CHAIN ​​musiyano kubva pachinzvimbo 31, kutora chikamu che7: izvi zvinoenderana ne «Ubunlog».

Postback mabasa

Iyo yekudzosera mashandiro neBash inogadzirwa ne "kudzoka" kuraira, kunyangwe kana tichifanirwa kuifananidza neiyo Bash inoshandura inoita "isinganzwisisike" michina, iyo iwe yaunofanirwa kujaira. Ngatitarisei pamuenzaniso unotevera:

#!/usr/bin/env bash

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

suma 12 23
retorno=$?
echo $retorno

Mabasa anofanira kugara achitsanangurwa usati waashandisa muBashNaizvozvo, mushure me shebang isu tinozivisa huwandu hwebasa, pamutsetse wechina isu tinotsanangura tichishandisa «yemuno» kupihwa kwekutanga kwemiparameter ($ 1) kune iyo inoshanduka "a". Maitiro akafanana pamutsara wechishanu, kupi isu tinopa iyo yechipiri paramende a ($ 2) kune iyo inoshanduka «b». Mutsetse wepfumbamwe tinodaidza iyo sum function nemaparameter maviri ayo anozoshandurwa nemuchina wakatsanangurwa mu akasiyana "a" uye "b" uye na "dzoka" tinoadzosa akawedzerwa, sezvazvinogona kuonekwa zviri nyore mumirayiridzo yebasa.

Isu tinopa iyo kusiana "kudzoka" mu mutsara 10 mhedzisiro yekuitwa kweiri basa sum.

Mushure mekudzidza uye kunzwisisa nzira iyo kudzoka kwemitengo uye kupihwa misiyano kunoitwa Ngatiendei kunoona yedu chirongwa cheiyo kuverenga kweDNI tsamba neBash.

Chinyorwa chekuverenga mavara eDNI 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 tsamba yeDNI yedu Inoenderana ne nhamba module 23. Ichi chi, tinopatsanura nhamba ne23 y panzvimbo yekutarisa iyo quotient, isu tinotarisa zororo rese. Mamwe mazwi, se nhamba dzinopatsanurwa ne23 dzichapa zero, tsamba iyo rinoenderana naro ndiro «T», kubvira izvi chinzvimbo 0, sezvatakaona mune script pamusoro, ese ma substrings anotanga kuverenga kubva zero. Ndokunge, nemo module tichagara tichiwana manhamba pakati pe0 (tsamba "T") uye makumi maviri nemaviri (tsamba "O"). MuBash, semamwe mitauro iyo module inowanikwa kuburikidza neiyo muzana opareta «%».

In the mutsara wechishanu tinotsanangura mavara muhurongwa hwako. Zviri pachena, iyo odha haigone kuchinjwa yemhedzisiro yakavimbika. Mune if yemutsetse 9 tiri kukumbira kana pakudana script paive nenhamba se paramende. Kana pasina paramende, tinoikumbira nekhibhodi nemirairo pamitsetse 11 kusvika 13. Kana script ikadaidzwa nenhamba kuti itore odha pamutsetse wegumi neshanu, ipa paramende iyi kusiyanisa «ndni».

Mutsetse 23 tinotaura nezve modulo basa kuburikidza neparamende ye musiyano «ndni», kungave kwave kuunganidzwa separamende mu bash, kana nekhibhodi seyokuisa. Mutsetse 24 kudzoka kwebasa kunopihwa kune yakasarudzika «mod». Pane 25 m mutsaraisu tinoratidza iyo nhamba, dash uye tsamba inoenderana nechinzvimbo zvinoenderana nekuverenga kweiyo modulus uye substring.

Kuedza yedu DNI script

$ ./dni 12345678
12345678-Z

O tsime,

$ ./dni

 Cálculo DNI, Introduce número

Zvese zvinyorwa zvedu zvinofanirwa kusanganisira paramende "-a" yemunyori uye imwe "-h" yekubatsira uye syntax. Sezvatakaona muzvinyorwa zvakapfuura kana ini ndinozvisiira kwauri kuti udzivise kuita kuti kodhi iyi iome.
Ndinovimba uye ndinovimba kuti chinyorwa ichi chave chekufarira.


Makomendi gumi, siya zvako

Siya yako yekutaura

Your kero e havazobvumirwi ichibudiswa. Raida minda anozivikanwa ne *

*

*

  1. Inotarisira iyo data: Miguel Ángel Gatón
  2. Chinangwa cheiyo data: Kudzora SPAM, manejimendi manejimendi.
  3. Legitimation: Kubvuma kwako
  4. Kutaurirana kwedata
  5. Dhata yekuchengetedza: Dhatabhesi inobatwa neOccentus Networks (EU)
  6. Kodzero: Panguva ipi neipi iwe unogona kudzora, kupora uye kudzima ruzivo rwako

  1.   Omar B.M. akadaro

    Mhoroi, pane munhu angandibatsira, ini ndoda kuisa lubuntu kudesktop yangu yekare asi hazvindibvumidze kuti ndiise kuburikidza neUSB uye iyo dvd drive yakanganisika, ndinongoda kuisa http://www.plop.at kuUbuntu 16.04 LTS asi ini handizive kuzviita sei. Ndatenda

    1.    Pedro Ruiz Hidalgo chigadziri chemufananidzo akadaro

      Omar,

      Sezvawataura, mamiriro acho haasi kuvimbisa zvakanyanya: usb haibvumidzwe uye dvd drive yakanganisika. Asi iwe taurawo kuti "komputa yachembera", zvinoreva kuti une itsva. Edza kuisa kuisirwa pane hard drive kubva kune yako inoshanda komputa uye kuyedza kuiisa kubva kune iro dhiraivha.

      Reply with quote

    2.    Cesar Deba akadaro

      Une komputa nebhokisi rinobviswa here? Kwidza iro rakaomarara dhiraidhi rekare komputa mune inobvisika usb bhokisi uye tanga iyo yekuisa diski.
      Linux neUnix hazvifunge nezve Hardware padanho rebhutsu, iro raunogona kuisa dhisiki zvakare neinux yakaiswa.

    3.    Omar B.M. akadaro

      Ndinokutendai zvikuru ndinokutaurirai kuti zvandakaita ndezvekubva kuUbuntu 16.04 kuenda kuLubuntu 16.04 mukati meiyo imwe sisitimu yekushandisa hehe uye saka komputa yangu yekare yaishanda zvakanaka hehe kwaziso kubva kuColombia.