Koyi lissafin harafin DNI ta amfani da rubutun Bash

Bayan gamsar da bukatun para iya gudanar da rubutun bash, kuma fahimta yadda za a ayyana ayyuka, koyi yadda dawo da dabi'u a cikin ayyukan bash. Don wannan zamu ƙirƙiri ƙaramin shirin ― amma mai ƙarfi― a cikin Bash cewa lissafa haruffan DNI. Ina da labari mai dadi: Bash ma zai iya a sanya a kan Windows 10. Tare da abin da za a iya ƙara dukkan ƙarfin Linux a cikin tsarin aiki, bari a ce ... daban.

Da farko dai, dole ne mu fahimci yadda canji, wanda, kamar yadda a cikin kowane yare, yana da yiwuwar dawo da sassan kirtani daga nuni da sarkar, da matsayi da kuma tsayin sashin. Bari mu duba misali na wannan halin. Mun ƙirƙiri rubutunmu da

$ touch prueba_substring
$ 

Sannan zamu kara lambar mai zuwa tare da editan da ka fi so. A yanayin ƙarshe editan da na fi so shi ne mcedit. Amma kwanan nan na ga cewa Nano yana samun ƙarfi.

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

Dingara izini da aiwatarwa kamar haka:

$ chmod +x prueba_substring
$ ./prueba_substring
$

Ya kamata, idan komai ya tafi daidai, dawo da sakamakon mai zuwa:

 Linux Con Ubuntu y Ubunlog, claro!

 Linux

 Aprendo en Ubunlog

Substring Aiki

Kamar yadda kake gani a sama Na haskaka layuka 13 zuwa 15 daga rubutun ka taka zuwa bayyana lambarka. Echo tare da siga "-e" bari a nuna Halin layi na gaba, mun bayyana wannan halin a cikin layi 7 kuma an sanya shi zuwa ga «ret».

Layi na 13: Na nuna mahimmin (matattara) na canjin CHAIN, wanda aka bayyana a layin 8, daga matsayi na 12. Koyaushe farawa don ƙidaya daga matsayi na 0.

Layi na 14: Daga Matsayi 12 na canjin CHAIN, na nuna wani sashi na 5. Kamar yadda zaku tabbatar wannan yayi dace da tushen "Linux".

Layi na 15: Na tsara a sabon kirtani wanda aka killace shi a zango Na fara kamar «Na koya a cikin«, don ci gaba da maɓallin keɓaɓɓen Sarkar daga matsayi na 31, ɗaukar yanki na 7: wannan yayi dace da «Ubunlog».

Ayyukan baya

Tsarin dawowa tare da Bash ana samar dashi ta hanyar umarnin "dawowa", kodayake, idan yakamata mu dace dashi da mai canzawar Bash, yana aiwatar da wata hanyar "baƙon abu", wanda dole ne ku saba dashi. Bari mu dubi misali mai zuwa:

#!/usr/bin/env bash

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

suma 12 23
retorno=$?
echo $retorno

Ayyuka dole ne koyaushe a bayyana su kafin amfani da su a cikin Bash, saboda haka, bayan shebang Mun bayyana jimlar aiki, akan layi 4 Mun ayyana ta hanyar «na cikin gida» ƙaddamar da farkon sigogin ($ 1) zuwa ga mai canji "a". Hanya iri ɗaya akan layi 5, inda mun sanya sigo na biyu a ($ 2) zuwa mai sauyawa «b». A layin tara muna kiran aikin jimla tare da sigogi biyu waɗanda za'a canza su ta hanyar aikin da aka bayyana a cikin masu canji "a" da "b" kuma tare da "dawo" zamu mayar dasu da aka kara, kamar yadda za'a iya gani cikin umarnin aikin.

Mun sanya m "dawo" a cikin layi 10 sakamakon aiwatar da aikin jimla.

Bayan nazari da fahimtar hanyar da dawo da ƙimomi da aiki zuwa masu canji ana aikatawa Bari mu je mu ga shirinmu na lissafin haruffa DNI tare da Bash.

Rubutu don lissafin haruffa DNI tare da Bash

#!/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 wasiƙar DNI ɗinmu Ya yi daidai da lambar lamba 23. Wannan shine, mun raba lambar da 23 y maimakon duban abin, muna kiyaye sauran rabe-raben. Sauran kalmomin, kamar lambobin da aka kasa su 23 zasu bada sifili, harafin cewa yayi dace da ita shine «T», tunda wannan shine matsayi 0, kamar yadda muka gani a cikin rubutun da ke sama, duk maganan suna fara kirgawa daga sifili. Wannan shine, tare da koyaushe koyaushe zamu sami lambobi tsakanin 0 (harafi "T") da 22 (harafi "O"). A cikin Bash, kamar yadda yake a cikin wasu yarukan an samo samfurin ta hanyar mai amfani da kashi «%».

A cikin layi na 5 muna ayyana haruffa a cikin tsari. A bayyane yake, ba za a iya canza oda ba don amintaccen sakamako. A cikin idan na layi 9 muna tambaya idan lokacin kiran rubutun akwai lamba azaman ma'auni. Idan babu siga, muna neman sa a kan keyboard tare da umarnin kan layi 11 zuwa 13. Idan an kira rubutun tare da lamba don lissafin tsari akan layin 15, sanya wannan sigogin zuwa “ndni” mai sauyawa.

A layin 23 muna magana ne akan aikin modulo ta hanyar siga na m «ndni», ko dai an tattara shi azaman siga a bash, ko ta hanyar keyboard kamar shigar da bayanai. A layin 24 aka sanya dawo da aikin zuwa mai sauyawa '' mod ''. A kan layin 25 mmun nuna lamba, dash da harafin da ya dace da matsayin gwargwadon lissafin abin da aka kara da maɓallin.

Gwajin rubutun mu na DNI

$ ./dni 12345678
12345678-Z

Ya da kyau,

$ ./dni

 Cálculo DNI, Introduce número

Duk rubutun mu yakamata su haɗa da ma'aunin "-a" ga marubucin da kuma wani "-h" don taimako da tsara bayanai. Kamar yadda muka gani a cikin labaran da suka gabata ko na bar muku shi don kauce wa sanya lambar ta zama mai wahala.
Ina fata da fatan cewa wannan labarin ya kasance mai ban sha'awa.


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.   Umar BM m

    Barka dai, wani zai iya taimaka min, ina bukatar girka lubuntu a tsohon tebur dina amma ba zai bari in girka ta USB ba kuma dvd din ya lalace, ina so in girka http://www.plop.at zuwa Ubuntu 16.04 LTS amma ban san yadda zan yi ba. Godiya

    1.    Pedro Ruiz Hidalgo mai sanya wuri m

      Omar,

      Kamar yadda kuka ambata, halin da ake ciki ba shi da tabbas: Ba a ba da izinin USB ba kuma DVD ɗin ta lalace. Amma kuma kun yi tsokaci cewa "kwamfutar ta tsufa", wannan yana nufin kuna da sabo. Gwada sanya sanyawa a kan rumbun kwamfutarka daga kwamfutarka mai aiki da kokarin girka ta daga wannan rumbun.

      gaisuwa

    2.    Cesar Deba m

      Kuna da kwamfuta da akwatin cirewa? Haɗa tsohuwar rumbun tsohuwar kwamfutar a cikin akwatin kebul ɗin cirewa kuma fara faifan shigarwa.
      Linux da Unix basa yin la'akari da kayan aikin a matakin taya, wanda zaku iya sake sanya faifan tare da shigar da Linux.

    3.    Umar BM m

      Na gode sosai Ina gaya muku cewa abin da na yi shi ne in tashi daga Ubuntu 16.04 zuwa Lubuntu 16.04 a cikin wannan tsarin aiki hehe kuma wannan shine yadda tsohuwar kwamfutata ke aiki sosai hehe gaisuwa daga Colombia.