Miután kielégítette a követelmények mert képes legyen bash szkriptek futtatására, és értsd meg hogyan definiáljuk a függvényeket, megtanulják, hogyan visszatérési értékek a bash függvényekben. Ehhez létrehozunk egy kis, de erőteljes programot Bash-ban számítsa ki a DNI betűit. Van egy jó hírem: Bash is telepíteni kell a Windows 10 rendszerre. Amivel hozzá lehet adni a Linux teljes erejét az operációs rendszerekben, mondjuk ... másként.
Először is muszáj megérteni, hogy a alszövegek, amire, mint minden nyelvben, lehetősége van egy karakterlánc részeit adja vissza a lánc megjelölésétől, a szegmens helyzetétől és hosszától. Nézzünk meg egy példát erre a viselkedésre. Azzal készítjük a szkriptünket
$ touch prueba_substring $
Ezután hozzáadjuk a következő kódot a kívánt szerkesztőhöz. Terminál módban az előnyben részesített szerkesztőm az mcedit. De mostanában azt látom, hogy a nano egyre erősebb.
#!/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
Az engedélyek hozzáadása és a végrehajtás így:
$ chmod +x prueba_substring $ ./prueba_substring $
Ha minden jól sikerült, a következő eredményt kell adnia:
Linux Con Ubuntu y Ubunlog, claro! Linux Aprendo en Ubunlog
Substring művelet
Amint fentebb láthatja Kiemeltem a 13–15. Sort a forgatókönyvből, és lépésről lépésre magyarázza el a kódját. visszhang -vel a "-e" paraméter megmutatja a következő sor karakter, ezt a karaktert definiáltuk a 7. sor és a «ret» változóhoz rendelt.
13. sor: Megmutatom az alszöveget (szubsztring) a CHAIN változó 8. sorban leírtaként, a 12. pozícióból. Mindig a 0. pozíciótól kezdi számolni.
14. sor: Innen a CHAIN változó 12. pozíciójában 5-ös szegmenst mutatok. Amint ellenőrizni fogja, hogy ez megfelel-e a subing "Linux".
15. sor: Összeállítom a új karakterlánc idézőjelek közé zárva Úgy kezdem, hogy «beletanulok«, hogy folytassam a CHAIN változó alszövegével a 31. pozícióból, egy 7-es szegmenst vesz fel: ez megfelel «Ubunlog».
Postback funkciók
A Bash-szel való visszatérési mechanizmust a "return" parancs állítja elő, bár amikor hozzá kell illesztenünk egy Bash-változóhoz, egy "furcsa" mechanizmust valósít meg, amelyet hozzá kell szokni. Nézzük meg a következő példát:
#!/usr/bin/env bash function suma(){ local a=$1 local b=$2 return $(( $a + $b )) } suma 12 23 retorno=$? echo $retorno
A funkciókat mindig meg kell határozni, mielőtt a Bash-ban használnánk őket, ezért a kunyhó deklaráljuk a függvény összegét, a 4. sorban a "local" segítségével meghatározzuk az első paraméterek hozzárendelését ($ 1) az "a" változóra. Azonos eljárás az 5. vonalon, ahol a második a ($ 2) paramétert a «b» változóhoz rendeljük. A kilencedik sorban az összegfüggvényt két paraméterrel hívjuk meg, amelyeket a "a" és "b" változók, és a "return" értékkel adjuk vissza őket, amint az a funkció utasításokban is jól látható.
A "return" változót a a 10. sor a függvényösszeg végrehajtásának eredménye.
Miután tanulmányozta és megértette a módját Az értékek visszatérését és a változókhoz való hozzárendelést gyakorolják Menjünk megnézni a DNI betűk számítása Bash-szal.
Szkript a DNI betűk Bash használatával történő kiszámításához
#!/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 DNI levelünk megfelel a számmodul 23. Ez, elosztjuk a számot 23-mal y ahelyett, hogy a hányadost nézné, megfigyeljük a felosztás többi részét. A többi szó, mint a 23-mal osztható számok nullát adnak, az a levél megfelel a «T», mivel ez a 0. pozíció, amint azt a fenti forgatókönyvben láthattuk, az összes alsor nullától kezdi számolni. Vagyis a modullal mindig számokat fogunk kapni 0 ("T" betű) és 22 ("O" betű) között. Bash-ban, mint más nyelvekben a modult a «%» százalékos operátor segítségével kapjuk meg.
Az az 5. sor meghatározzuk a betűket sorrendjében. Ez nyilvánvaló, a sorrend nem változtatható meg megbízható eredményekért. A vonal if-jében 9 kérdezzük ha a szkript meghívásakor paraméterként egy szám volt. Ha nincs paraméter, akkor azt a billentyűzeten kérjük, a 11–13. Sor utasításainak megfelelően. Ha a szkriptet számmal hívták meg a 15. sor sorrendjének kiszámításához, rendelje hozzá ezt a paramétert az «ndni» változóhoz.
A 23. sorban a modulo függvényre utalunk a "ndni" változó, vagy a bash paramétereként gyűjtötték be, vagy a billentyűzet segítségével bemenetként gyűjtötték. A 24. sorban a függvény visszatérése a "mod" változóhoz van rendelve. A 25 m-es vonalonmegmutatjuk a pozíciónak megfelelő számot, kötőjelet és betűt a modulus és az alfej számítása alapján.
DNI szkriptünk tesztelése
$ ./dni 12345678 12345678-Z
Hát,
$ ./dni Cálculo DNI, Introduce número
Minden szkriptünknek tartalmaznia kell egy "-a" paramétert a szerző számára, és egy másik "-h" paramétert a segítség és a szintaxis érdekében. Amint azt a korábbi cikkekben láthattuk, vagy meghagyom neked, hogy elkerülje a kód nehézkesebbé tételét.
Remélem és remélem, hogy ez a cikk érdekelte Önt.
Helló, tud valaki segíteni nekem, telepítenem kell a lubuntu-t a régi asztalomra, de ez nem engedi, hogy USB-n keresztül telepítsem, és a dvd meghajtó sérült, csak telepíteni szeretnék http://www.plop.at az Ubuntu 16.04 LTS-re, de nem tudom, hogyan kell csinálni. Köszönöm
Omar,
Mint említetted, a helyzet nem túl ígéretes: az usb nem megengedett, és a dvd meghajtó sérült. De azt is megjegyzi, hogy a "számítógép régi", ez azt jelenti, hogy van úja. Tegye a telepítést a működő számítógép merevlemezére, és próbálja meg azt a meghajtóról telepíteni.
Üdvözlet
Van számítógépe és cserélhető doboza? Csatlakoztassa a régi számítógép merevlemezét az eltávolítható USB dobozba, és indítsa el a telepítő lemezt.
A Linux és a Unix nem veszi figyelembe a rendszerindítás szintjén található hardvert, amellyel a lemezt telepítve újra beteheti.
Köszönöm szépen, mondom, hogy az Ubuntu 16.04-től a Lubuntu 16.04-ig mentem ugyanazon az operációs rendszeren belül hehe, és így működött jól a régi számítógépem hehe üdvözlet Kolumbiából.