Funda ukuthi ungayibala kanjani incwadi ye-DNI usebenzisa umbhalo weBash

Ngemuva kokwanelisa izidingo ukuze ukwazi ukusebenzisa imibhalo ye-bash, futhi baqonde uyichaza kanjani imisebenzi, funda ukuthi kanjani buyisela amanani emisebenzini ye-bash. Ngalokhu sizokwakha uhlelo oluncane lwe-utbut powerful― eBash ukuthi abale izinhlamvu ze-DNI. Nginezindaba ezinhle: uBash naye angakwazi ukufakwa ku-Windows 10. Ngalokho okungangezwa wonke amandla weLinux ezinhlelweni ezisebenzayo, ake sithi ... kwehlukile.

Okokuqala, kufanele qonda ukuthi i- izintambo, okuthi, njengakuzo zonke izilimi, ibe nethuba lokuthi Buyisela izingxenye zentambo kusukela ekubonisweni kweketanga, isikhundla nobude besigaba. Ake sibheke isibonelo salokhu kuziphatha. Sakha umbhalo wethu nge

$ touch prueba_substring
$ 

Ngemuva kwalokho sifaka ikhodi elandelayo ngesihleli sakho osithandayo. Kumodi yokugcina umhleli wami engiwukhethayo mcedit. Kepha muva nje ngiyabona ukuthi i-nano ithola 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 

Ukungeza izimvume nokwenza kanjena:

$ chmod +x prueba_substring
$ ./prueba_substring
$

Kufanele, uma konke kuhambe kahle, kubuyise imiphumela elandelayo:

 Linux Con Ubuntu y Ubunlog, claro!

 Linux

 Aprendo en Ubunlog

Umsebenzi we-Substring

Njengoba ubona ngenhla Ngigqamise imigqa 13 kuye ku-15 kusuka kuskripthi nesinyathelo kuye chaza ikhodi yakho. Echo ne ipharamitha "-e" lets khombisa umugqa olandelayo, sichaze lo mlingiswa kufayela le- umugqa 7 futhi unikezwe okuguquguqukayo «ret».

Ulayini 13: Ngikhombisa i-substring (intambo encane) we-CHAIN ​​oguqukayo, ochazwe kulayini 8, kusuka esikhundleni 12. Ukuqala njalo ukubala kusuka kusikhundla 0.

Umugqa 14: Kusuka isikhundla 12 sokuguquguquka kwe-CHAIN, ngikhombisa ingxenye engu-5. Njengoba uzoqinisekisa ukuthi lokhu kufana ne- substring "Linux".

Ulayini 15: Ngibhala a intambo entsha efakwe kuzilinganiso Ngiqala njengo- «Ngifunda ku-«, ukuqhubeka nentambo yokuguquguquka kwe-CHAIN kusuka endaweni yama-31, kuthatha ingxenye engu-7: lokhu kufana ne- «Ubunlog».

Imisebenzi ye-Postback

Indlela yokubuyisa neBash ikhiqizwa umyalo we- "return", yize, lapho kufanele siyifanise nokuguquguquka kweBash, isebenzisa inqubo "engajwayelekile", okufanele uyijwayele. Ake sibheke lesi sibonelo esilandelayo:

#!/usr/bin/env bash

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

suma 12 23
retorno=$?
echo $retorno

Imisebenzi kufanele ihlale ichazwa ngaphambi kokuyisebenzisa eBash, ngakho-ke, ngemuva kwe- sheba simemezela isamba somsebenzi, kulayini 4 sichaza ngokusebenzisa «kwasendaweni» ukwabiwa kokuqala kwamapharamitha ($ 1) kokuguquguqukayo "a". Inqubo efanayo kulayini 5, lapho sabela ipharamitha yesibili a ($ 2) kokuguquguqukayo «b». Kumugqa wesishiyagalolunye sibiza umsebenzi ophelele ngamapharamitha amabili azoguqulwa yindlela echazwe ku- okuguquguqukayo "a" no- "b" futhi ngo- "buyisela" sikubuyisela kungeziwe, njengoba kungabonakala kalula kumiyalo yokusebenza.

Sabela okuguqukayo "ukubuya" kufayela le- umugqa we-10 umphumela wokusetshenziswa kwesamba somsebenzi.

Ngemuva kokufunda nokuqonda indlela ukubuyiselwa kwamanani nokunikezwa kokuguquguqukayo kuyenziwa Ake siyobona uhlelo lwethu lwe- ukubalwa kwezinhlamvu ze-DNI ezineBash.

Iskripthi sokubala izinhlamvu ze-DNI ngeBash

#!/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 incwadi ye-DNI yethu iyahambelana inombolo module 23. Lokhu, sihlukanisa inombolo ngama-23 y esikhundleni sokubheka i-quotient, sigcina okusele ukwahlukana. Amanye amagama, njenge izinombolo ezihlukaniswa ngama-23 zizonikeza uziro, incwadi ethi ihambelana nayo yi- «T», kusukela lokhu isikhundla 0, njengoba sibonile kuskripthi esingenhla, wonke ama-substrings aqala ukubala kusuka ku-zero. Lokho wukuthi, ngemodyuli sizohlala sithola izinombolo phakathi kuka-0 (uhlamvu "T") kanye no-22 (incwadi "O"). EBash, njengezinye izilimi imodyuli itholakala ngomsebenzisi wamaphesenti «%».

Ku umugqa wesi-5 sichaza izinhlamvu ngokulandelana kwakho. Kusobala, i-oda alinakuguqulwa ukuthola imiphumela ethembekile. Ku-if yomugqa 9 siyabuza uma ngenkathi kubizwa iskripthi bekukhona inombolo njengepharamitha. Uma ingekho ipharamitha, siyayicela kukhibhodi enemiyalo emigqeni engu-11 kuye ku-13.

Kumugqa wama-23 sibhekisa kumsebenzi we-modulo ngepharamitha ye okuguqukayo «ndni», noma ngabe kuqoqwe njengepharamitha ku-bash, noma ngekhibhodi njengokufaka. Kumugqa wama-24 ukubuya komsebenzi kunikezwa okuguquguqukayo «mod». Emgqeni ongu-25 msikhombisa inombolo, udwi kanye nencwadi ehambelana nendawo ngokuya ngesibalo semodyuli kanye nongqimba.

Ukuhlola umbhalo wethu we-DNI

$ ./dni 12345678
12345678-Z

Hhawu,

$ ./dni

 Cálculo DNI, Introduce número

Yonke imibhalo yethu kufanele ifake phakathi "-a" ipharamitha yombhali nenye i- "-h" yosizo ne-syntax. Njengoba sibonile kuma-athikili adlule noma ngikushiya kuwe ukuze ungenzi ikhodi ibe nzima kakhulu.
Ngiyethemba futhi ngiyethemba ukuthi lo mbhalo ubewuthanda.


Shiya umbono wakho

Ikheli lakho le ngeke ishicilelwe. Ezidingekayo ibhalwe nge *

*

*

  1. Ubhekele imininingwane: Miguel Ángel Gatón
  2. Inhloso yedatha: Lawula Ugaxekile, ukuphathwa kwamazwana.
  3. Ukusemthethweni: Imvume yakho
  4. Ukuxhumana kwemininingwane: Imininingwane ngeke idluliselwe kubantu besithathu ngaphandle kwesibopho esisemthethweni.
  5. Isitoreji sedatha: Idatabase ebanjwe yi-Occentus Networks (EU)
  6. Amalungelo: Nganoma yisiphi isikhathi ungakhawulela, uthole futhi ususe imininingwane yakho.

  1.   Omar B.M. kusho

    Sawubona, kukhona ongangisiza, ngidinga ukufaka i-lubuntu kudeskithophu yami endala kodwa ngeke ingivumele ngifake nge-USB futhi idrayivu ye-dvd ilimele, ngifuna ukufaka nje http://www.plop.at ku-Ubuntu 16.04 LTS kepha angazi ukuthi ngikwenze kanjani. Ngiyabonga

    1.    UPedro Ruiz Hidalgo placeholder image kusho

      Omar,

      Njengoba ushilo, lesi simo asithembisi kakhulu: i-usb ayivunyelwe futhi idrayivu ye-dvd ilimele. Kepha futhi uphawula ukuthi "ikhompyutha indala", lokho kusho ukuthi usunenye entsha. Zama ukufaka ukufakwa kwi-hard drive kusuka kukhompyutha yakho esebenzayo bese uzama ukukufaka kusuka kuleyo drayivu.

      Phendula ngokucaphuna

    2.    UCesar Delba kusho

      Unayo ikhompyutha nebhokisi elikhishwayo? Khweza i-hard drive yekhompyutha endala ebhokisini le-usb bese ukhipha idiski lokufaka.
      I-Linux ne-Unix azinaki i-hardware ezingeni le-boot, ongabeka ngayo idiski futhi nge-linux efakiwe.

    3.    Omar B.M. kusho

      Ngiyabonga kakhulu ngiyakutshela ukuthi engikwenzile bekuwukusuka ku-Ubuntu 16.04 ngiye kuLubuntu 16.04 ngaphakathi kohlelo olufanayo lwe-hehe ngakho-ke ikhompyutha yami yakudala ibisebenza kahle imikhonzo yehehe evela eColombia.