Eftir að hafa fullnægt kröfur para geta keyrt bash forskriftir, og skilja hvernig á að skilgreina aðgerðir, læra hvernig skila gildi í bash aðgerðum. Fyrir þetta ætlum við að búa til lítið „en öflugt“ forrit í Bash það reiknaðu stafina í DNI. Ég hef góðar fréttir: Bash dós líka vera sett upp á Windows 10. Með því sem hægt er að bæta við öllum krafti Linux í stýrikerfum, segjum ... öðruvísi.
Fyrst af öllu verðum við að gera það skilja hvernig undirstrengir, sem, eins og á hvaða tungumáli sem er, hefur möguleika á skila hlutum af streng frá vísbendingu um keðjuna, stöðu og lengd hluta. Lítum á dæmi um þessa hegðun. Við búum til handritið okkar með
$ touch prueba_substring $
Svo bætum við eftirfarandi kóða við valinn ritstjóra þinn. Í flugstöðinni valinn ritstjóri minn er mcedit. En undanfarið sé ég að nano er að eflast.
#!/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
Að bæta við heimildum og framkvæma svona:
$ chmod +x prueba_substring $ ./prueba_substring $
Það ætti, ef allt gengur vel, að skila eftirfarandi niðurstöðu:
Linux Con Ubuntu y Ubunlog, claro! Linux Aprendo en Ubunlog
Index
Aðgerð undirstrengs
Eins og sjá má hér að ofan Ég hef dregið fram línur 13 til 15 handritsins og stíga til útskýrðu kóðann þinn. Echo með breytu „-e“ látum sýna næsta lína karakter, við höfum skilgreint þennan karakter í línu 7 og úthlutað breytunni «ret».
Lína 13: Ég sýni undirlagið (undirstrengur) af CHAIN breytunni, lýst í línu 8, úr stöðu 12. Alltaf að byrja að telja frá stöðu 0.
Lína 14: Frá stöðu 12 í CHAIN breytunni, ég sýni hlutann 5. Eins og þú munt sannreyna samsvarar þetta undirstrengur „Linux“.
Lína 15: Ég semja a nýr strengur fylgir tilvitnunum Ég byrja eins og „Ég læri í“, til að halda áfram með undirstreng af CHAIN breytunni frá stöðu 31, með 7 hluta: þetta samsvarar „Ubunlog“.
Postback aðgerðir
Skilakerfið með Bash er framleitt með "return" skipuninni, þó að þegar við verðum að passa það við Bash breytu, þá útfærir það "skrýtið" kerfi, sem þú verður að venjast. Við skulum skoða eftirfarandi dæmi:
#!/usr/bin/env bash function suma(){ local a=$1 local b=$2 return $(( $a + $b )) } suma 12 23 retorno=$? echo $retorno
Aðgerðir verða alltaf að vera skilgreindar áður en þær eru notaðar í Bashþví eftir að shebang við lýsum yfir aðgerðasumman, á línu 4 við skilgreinum með „staðbundinni“ úthlutun fyrstu breytanna ($ 1) við breytuna „a“. Samskonar aðferð á línu 5, þar sem við skipum seinni breytuna a ($ 2) við breytuna «b». Í línu níu köllum við summufallið með tveimur breytum sem verða umbreyttar með því fyrirkomulagi sem lýst er í breytur "a" og "b" og með "skila" skilum við þeim bætt við, eins og sjá má auðveldlega í leiðbeiningunum um aðgerðina.
Við úthlutum breytunni „skila“ í lína 10 niðurstaðan af framkvæmd virknisummunnar.
Eftir að hafa lært og skilið hvernig skil á gildum og úthlutun til breytna er æfð Við skulum fara að sjá dagskrá okkar fyrir útreikningur á DNI bókstöfum með Bash.
Handrit til að reikna DNI stafi með 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 bréf DNI okkar Það samsvarar númerareining 23. Þetta er, við deilum tölunni í 23 y í stað þess að skoða stuðulinn, við fylgjumst með restinni af deildinni. Hin orðin, eins og tölur sem eru deilanlegar með 23 munu gefa núll, bréfið sem samsvarar því að það er «T», síðan þetta er staða 0, eins og við höfum séð í handritinu hér að ofan, allar undirstrikanir byrja að telja frá núlli. Það er, með einingunni munum við alltaf fá tölur milli 0 (stafur "T") og 22 (stafur "O"). Í Bash, eins og á öðrum tungumálum einingin er fengin með prósentuaðilanum «%».
Í línu 5 skilgreinum við stafina í pöntun þinni. Það er augljóst, ekki er hægt að breyta röðinni fyrir áreiðanlegar niðurstöður. Í ef línunnar 9 við erum að spyrja ef þegar hringt var í handritið var númer sem breytu. Ef engin breytu er til, óskum við eftir því með lyklaborðinu með leiðbeiningunum frá línum 11 til 13. Ef handritið var kallað með tölu til að reikna röðina á línu 15, úthlutar hún þessari breytu til breytunnar «ndni».
Í línu 23 er vísað til modulóaðgerðarinnar í gegnum breytuna breytu «ndni», annaðhvort hefur henni verið safnað sem breytu í bash eða með lyklaborði sem inntak. Í línu 24 er skilað aðgerðinni úthlutað til breytunnar «mod». Á 25 m línunnivið sýnum númerið, strikið og stafinn sem samsvarar stöðunni samkvæmt útreikningi einingarinnar og undirstringsins.
Að prófa DNI handritið okkar
$ ./dni 12345678 12345678-Z
O jæja,
$ ./dni Cálculo DNI, Introduce número
Öll forskriftir okkar ættu að innihalda „-a“ breytu fyrir höfundinn og aðra „-h“ fyrir hjálp og setningafræði. Eins og við höfum séð í fyrri greinum eða ég læt þér það eftir að gera kóðann ekki þunglamalegri.
Ég vona og vona að þessi grein hafi haft áhuga þinn.
4 athugasemdir, láttu þitt eftir
Halló, getur einhver hjálpað mér? Ég þarf að setja lubuntu á gömlu borðtölvuna mína en það leyfir mér ekki að setja upp í gegnum USB og DVD drifið er skemmt, ég vil bara setja upp http://www.plop.at til Ubuntu 16.04 LTS en ég veit ekki hvernig á að gera það. Takk fyrir
Omar,
Eins og þú nefndir eru aðstæður ekki mjög vænlegar: USB er ekki leyfilegt og DVD drif er skemmt. En þú segir líka að „tölvan sé gömul“, það þýðir að þú ert með nýja. Reyndu að setja uppsetninguna á harða diskinum frá vinnandi tölvunni þinni og reyndu að setja hana upp frá því drifi.
kveðjur
Ertu með tölvu og færanlegan kassa? Settu harða diskinn í gömlu tölvunni í USB-kassann sem hægt er að fjarlægja og byrjaðu uppsetningardiskinn.
Linux og Unix taka ekki tillit til vélbúnaðarins á ræsistiginu, með því er hægt að setja diskinn aftur með Linux uppsettum.
Þakka þér kærlega ég segi þér að það sem ég gerði var að fara frá Ubuntu 16.04 til Lubuntu 16.04 innan sama stýrikerfis hehe og svo virkaði gamla tölvan mín vel hehe kveðjur frá Kólumbíu.