Po uspokojení Požadavky bod umět spouštět bash skriptya pochopit jak definovat funkce, naučit se jak návratové hodnoty v bash funkcích. Za tímto účelem vytvoříme v Bashi malý ―ale výkonný― program vypočítat písmena DNI. Mám dobrou zprávu: Bash může také být nainstalován na Windows 10. S tím, co lze přidat veškerou sílu Linuxu v operačních systémech, řekněme ... jinou.
Nejprve musíme pochopit, jak substráty, který, stejně jako v jakémkoli jazyce, má možnost vrátit části řetězce z označení řetězu, polohy a délky segmentu. Podívejme se na příklad tohoto chování. Náš scénář vytváříme pomocí
$ touch prueba_substring $
Potom přidáme následující kód do vašeho preferovaného editoru. V terminálním režimu můj preferovaný editor je mcedit. Ale v poslední době vidím, že nano získává na síle.
#!/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
Přidání oprávnění a provádění takto:
$ chmod +x prueba_substring $ ./prueba_substring $
Pokud by vše proběhlo v pořádku, mělo by vrátit následující výsledek:
Linux Con Ubuntu y Ubunlog, claro! Linux Aprendo en Ubunlog
Podřetězcová operace
Jak vidíte výše Zvýraznil jsem řádky 13 až 15 ze skriptu a krok do vysvětlete svůj kód. Echo s parametr "-e" pojďme ukázat znak dalšího řádku, tento znak jsme definovali v řádek 7 a přiřazen k proměnné «ret».
Řádek 13: Zobrazuji podřetězec (podřetězec) proměnné CHAIN popsané v řádku 8, z pozice 12. Vždy začíná počítat od pozice 0.
Řádek 14: Od pozice 12 proměnné CHAIN, zobrazuji segment 5. Jak ověříte, odpovídá to podřetězec "Linux".
Řádek 15: Složím a nový řetězec uzavřený v uvozovkách Začínám jako «Učím se«, abych pokračoval v podřetězci proměnné CHAIN z pozice 31, přičemž segment 7: to odpovídá «Ubunlog».
Funkce postback
Zpětný mechanismus s Bashem je vytvořen příkazem „return“, ačkoli, když jej musíme přiřadit k proměnné Bash, implementuje „podivný“ mechanismus, na který si musíte zvyknout. Podívejme se na následující příklad:
#!/usr/bin/env bash function suma(){ local a=$1 local b=$2 return $(( $a + $b )) } suma 12 23 retorno=$? echo $retorno
Funkce musí být vždy definovány před použitím v Bash, tedy po Shebang deklarujeme funkční součet na řádku 4 definujeme pomocí «lokálního» přiřazení prvního z parametrů ($ 1) k proměnné „a“. Stejný postup na řádku 5, kde druhý parametr a ($ 2) přiřadíme proměnné «b». V řádku devět voláme funkci součtu se dvěma parametry, které budou převedeny mechanismem popsaným v proměnné „a“ a „b“ a pomocí „návratu“ je vrátíme přidané, jak lze snadno vidět v pokynech k funkci.
Proměnné "návrat" přiřadíme v řádek 10 výsledek provedení součtu funkcí.
Po prostudování a pochopení způsobu, jakým Procvičují se návraty hodnot a přiřazení k proměnným Pojďme se podívat na náš program výpočet písmen DNI s Bash.
Skript pro výpočet písmen DNI s 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 dopis našeho DNI odpovídá číselný modul 23. Tohle je, číslo vydělíme 23 y místo pohledu na kvocient pozorujeme zbytek divize. Jinými slovy, jako čísla dělitelná 23 budou mít nulu, dopis, který odpovídá tomu je «T», protože toto je pozice 0, jak jsme viděli ve skriptu výše, všechny podřetězce začínají počítat od nuly. To znamená, že s modulem vždy získáme čísla mezi 0 (písmeno "T") a 22 (písmeno "O"). V Bash, stejně jako v jiných jazycích modul je získán pomocí operátoru procenta «%».
V řádek 5 definujeme písmena ve vaší objednávce. Je to zřejmé, pořadí nelze změnit pro spolehlivé výsledky. V případě řádku 9 ptáme se pokud při volání skriptu bylo jako parametr číslo. Pokud není žádný parametr, požadujeme ho klávesnicí s pokyny z řádků 11 až 13. Pokud byl skript zavolán s číslem pro výpočet pořadí na řádku 15, přiřadí tento parametr proměnné «ndni».
V řádku 23 odkazujeme na funkci modulo prostřednictvím parametru proměnná «ndni», buď byla shromážděna jako parametr v bash, nebo pomocí klávesnice jako vstup. V řádku 24 je návrat funkce přiřazen proměnné «mod». Na 25 m čářezobrazíme číslo, pomlčku a písmeno odpovídající poloze podle výpočtu modulu a podřetězce.
Testování našeho skriptu DNI
$ ./dni 12345678 12345678-Z
Dobře,
$ ./dni Cálculo DNI, Introduce número
Všechny naše skripty by měly obsahovat parametr „-a“ pro autora a další „-h“ pro nápovědu a syntaxi. Jak jsme viděli v předchozích článcích, nebo to nechám na vás, aby nebyl kód těžkopádnější.
Doufám a doufám, že vás tento článek zajímal.
Dobrý den, může mi někdo pomoci, potřebuji nainstalovat lubuntu na můj starý desktop, ale nedovolí mi to instalovat přes USB a jednotka DVD je poškozená, chci jen nainstalovat http://www.plop.at na Ubuntu 16.04 LTS, ale nevím, jak na to. dík
Omar,
Jak jste zmínili, situace není příliš slibná: USB není povoleno a jednotka DVD je poškozena. Ale také komentujete, že „počítač je starý“, to znamená, že máte nový. Zkuste nainstalovat instalaci na pevný disk z pracovního počítače a zkuste ji nainstalovat z této jednotky.
pozdravy
Máte počítač a odnímatelnou krabici? Připojte pevný disk starého počítače do vyjímatelného usb boxu a spusťte instalační disk.
Linux a Unix nezohledňují hardware na bootovací úrovni, pomocí kterého můžete disk znovu umístit s nainstalovaným linuxem.
Velice vám děkuji, říkám vám, že to, co jsem udělal, bylo přejít z Ubuntu 16.04 na Lubuntu 16.04 ve stejném operačním systému hehe, a tak můj starý počítač fungoval dobře, pozdravy z Kolumbie.