Tyydyttämisen jälkeen requisitos ja pystyä suorittamaan bash-komentosarjojaja ymmärrä kuinka määritellä toiminnot, Opi kuinka paluuarvot bash-funktioissa. Tätä varten aiomme luoda pienen "mutta tehokkaan" ohjelman Bashiin Laske DNI: n kirjaimet. Minulla on hyviä uutisia: Bash voi myös olla asennettuna Windows 10: een. Sillä, mitä voidaan lisätä, kaikki Linuxin voimat käyttöjärjestelmissä, sanotaan ... erilaiset.
Ensinnäkin meidän on ymmärtää miten merkkijonoa, jolla, kuten kaikilla kielillä, on mahdollisuus palauta merkkijonon osat ketjun osoittamisesta, segmentin sijainnista ja pituudesta. Katsotaanpa esimerkkiä tästä käyttäytymisestä. Luomme käsikirjoituksemme
$ touch prueba_substring $
Sitten lisätään seuraava koodi haluamaasi editoriin. Päätetilassa ensisijainen toimittajani on mcedit. Mutta viime aikoina näen, että nano on voimistumassa.
#!/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
Käyttöoikeuksien lisääminen ja suorittaminen näin:
$ chmod +x prueba_substring $ ./prueba_substring $
Jos kaikki meni hyvin, sen pitäisi palauttaa seuraava tulos:
Linux Con Ubuntu y Ubunlog, claro! Linux Aprendo en Ubunlog
Substring-käyttö
Kuten yllä voit nähdä Olen korostanut rivejä 13-15 käsikirjoituksesta ja siirry kohtaan selitä koodisi. Echo kanssa parametri "-e" antaa näyttää seuraavan rivin merkki, olemme määrittäneet tämän merkin rivi 7 ja osoitettu muuttujalle «ret».
Rivi 13: Näytän alimerkkijonon (alimerkkijono) rivillä 8 kuvatun CHAIN-muuttujan kohdasta 12. Aina alkaa laskea paikasta 0.
Rivi 14: Lähtö CHAIN-muuttujan asemassa 12 näytän segmentin 5. Kun varmistat, että tämä vastaa substing "Linux".
Rivi 15: Sävelen a uusi merkkijono lainausmerkeissä Aloitan nimellä "Opi sisään" jatkaakseni CHAIN-muuttujan alaryhmällä sijainnista 31 ottaen segmentin 7: tämä vastaa «Ubunlog».
Postback-toiminnot
Palautusmekanismin Bashin kanssa tuottaa "return" -komento, vaikka, kun meidän on sovitettava se Bash-muuttujaan, se käyttää "outoa" mekanismia, johon sinun on totuttava. Katsotaanpa seuraavaa esimerkkiä:
#!/usr/bin/env bash function suma(){ local a=$1 local b=$2 return $(( $a + $b )) } suma 12 23 retorno=$? echo $retorno
Toiminnot on aina määriteltävä ennen niiden käyttöä Bashissasen vuoksi jittu ilmoitamme funktion summan rivillä 4 määrittelemme «paikallisen» avulla ensimmäisen parametrin osoittamisen ($ 1) muuttujaan "a". Identtinen menettely rivillä 5, missä annamme toisen parametrin a ($ 2) muuttujalle «b». Rivillä yhdeksän kutsumme summafunktiota kahdella parametrilla, jotka muunnetaan kohdassa kuvatulla mekanismilla muuttujat "a" ja "b" ja "return" palautamme ne lisätään, kuten toiminto-ohjeista helposti näkyy.
Määritämme muuttujan "return" rivi 10 tulos funktion summan suorittamisesta.
Kun olet opiskellut ja ymmärtänyt, miten harjoitetaan arvojen palautusta ja osoittamista muuttujiin Mennään katsomaan ohjelmaa DNI-kirjainten laskeminen Bashin avulla.
Komentosarja DNI-kirjainten laskemiseksi Bashin avulla
#!/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: n kirje vastaa numeromoduuli 23. Tämä on, jaamme luvun 23: lla y sen sijaan että katsot osamäärää, tarkkailemme loput jaosta. Toiset sanat, kuten 23: lla jaettavat luvut antavat nollan, kirje vastaa sitä on «T», tästä lähtien on asento 0, kuten olemme nähneet yllä olevasta käsikirjoituksesta, kaikki alaotsakkeet alkavat laskea nollasta. Eli moduulin avulla saamme aina numeroita välillä 0 (kirjain "T") - 22 (kirjain "O"). Bashissa, kuten muillakin kielillä moduuli saadaan prosenttioperaattorilla «%».
Että rivi 5 määritämme kirjaimet tilauksessasi. Se on itsestään selvää, järjestystä ei voi muuttaa luotettavien tulosten saamiseksi. Jos rivillä 9 me kysymme jos komentosarjaa soitettaessa parametrina oli numero. Jos parametria ei ole, pyydämme sitä näppäimistöltä ohjeiden avulla riveille 11-13. Jos komentosarjaa kutsuttiin numerolla rivin 15 järjestyksen laskemiseksi, määritä tämä parametri muuttujalle «ndni».
Rivillä 23 viitataan modulo-funktioon parametrin muuttuja «ndni», joko se on kerätty parametrina bashissa tai näppäimistöllä syötteenä. Rivillä 24 funktion palautus osoitetaan muuttujalle «mod». 25 m linjallanäytämme sijaintia vastaavan luvun, viivan ja kirjaimen moduulin ja osajohdon laskennan mukaan.
Testataan DNI-komentosarjaa
$ ./dni 12345678 12345678-Z
No,
$ ./dni Cálculo DNI, Introduce número
Kaikkiin skripteihimme tulisi sisältyä "-a" -parametri kirjoittajalle ja toinen "-h" apua ja syntaksia varten. Kuten olemme nähneet edellisissä artikkeleissa, tai jätän sen teille, jotta vältät koodin hankkimisen.
Toivon ja toivon, että tämä artikkeli on kiinnostanut sinua.
Hei, voiko joku auttaa minua, minun on asennettava lubuntu vanhaan pöytätietokoneeseeni, mutta se ei anna minun asentaa USB: n kautta ja DVD-asema on vaurioitunut, haluan vain asentaa http://www.plop.at Ubuntu 16.04 LTS: ään, mutta en tiedä miten se tehdään. Kiitos
Omar
Kuten mainitsit, tilanne ei ole kovin lupaava: USB-muistia ei ole jäljellä ja DVD-asema vaurioitunut. Mutta kommentoit myös, että "tietokone on vanha", mikä tarkoittaa, että sinulla on uusi. Yritä laittaa asennus kiintolevylle tietokoneeltasi ja yrittää asentaa se tältä asemalta.
terveiset
Onko sinulla tietokone ja irrotettava laatikko? Asenna vanhan tietokoneen kiintolevy irrotettavaan USB-ruutuun ja käynnistä asennuslevy.
Linux ja Unix eivät ota huomioon laitteistoa käynnistystasolla, jolla voit laittaa levyn uudelleen asennetun linuxin kanssa.
Paljon kiitoksia, kerron teille, että mitä tein, oli siirtyä Ubuntu 16.04: stä Lubuntu 16.04: een samalla käyttöjärjestelmällä hehe ja näin vanha tietokoneeni toimi hyvin hehe tervehdyksiä Kolumbiasta.