Programovanie v bash - časť 1

Aj keď ho všeobecne používame na administratívne účely alebo na správu súborov, server pohodlie de Linux rozširuje jeho funkcionalitu ďaleko nad tento účel a umožňuje nám programovať skripty Táto príručka nemá slúžiť ako úplná referencia o programovaní Bash, ale skôr ako úvod do základných príkazov a štruktúr, ktoré nám umožnia rozšíriť výkonnosť nášho systému GNU / Linux.

Čo je to „skript“?

V zásade hovoríme, že ide o súbor, ktorý obsahuje kód napísaný v určitom programovacom jazyku, ktorý systém používa pre určitú úlohu. Nemusí mať externý vstup alebo grafické rozhranie, musí však spôsobiť výstup spracovaných údajov (aj keď ich používateľ nevidí).

Jazyk, ktorý používa Bash, je definovaný vlastným tlmočníkom a kombinuje syntax ostatných shellov, napríklad Korn Shell (ksh) alebo C Shell (csh). Mnoho príkazov, ktoré sa zvyčajne používajú v konzole, sa dá použiť aj v skriptoch, s výnimkou tých, ktoré sa striktne týkajú konkrétnej distribúcie.

Štruktúra skriptu

Na začiatok musíme mať textový editor a vôľu programovať. Súbory, ktoré ukladáme s príponou .sh, môže konzola spustiť (alebo interpretovať), pokiaľ je prvý riadok nasledovný:

#! / Bin / bash

Toto informuje systém, aby na spustenie súboru použil konzolu. Znak # vám navyše umožňuje písať komentáre. Aby sme vytvorili najjednoduchší príklad, pridáme ešte jeden riadok, ktorý je viditeľný na nasledujúcom obrázku:

Príkaz echo zobrazí správu na obrazovke, v tomto prípade typické „Hello world!“ Ak ho uložíme a vykonáme pomocou konzoly, uvidíme výsledok.

Základné príkazy

Nasledujúce príkazy sú bežné a veľmi užitočné pre akýkoľvek typ programu. Objasňujeme, že ich je oveľa viac, ale zatiaľ sa budeme venovať nasledujúcemu.

Aliasy: umožňuje nahradiť reťazec slov kratším, čo umožňuje zníženie kódu.

#create alias volaný na s adresou #Downloads priečinok alias per = '/ home / user / Downloads' # Zakaždým, keď ho chceme použiť, musíme zavolať # nové slovo na #Ak chceme tento alias zničiť, použijeme unalias unalias na

break: umožňuje vám okamžite opustiť cyklus for, while, until alebo zvoliť slučku (slučky si podrobne preštudujeme neskôr)

# Vytvorte slučku, ktorá priradí čísla od 1 do 5 # pre každé „otočenie slučky“ pre počítadlo v 1 2 3 4 5 do # Vytlačíme aktuálnu hodnotu premennej # Counter, ktorá je analyzovaná znakom $ echo “ $ counter ”#Ak je hodnota počítadla rovná 3, ak [$ counter –eq 3], potom #Prerušenie opustí slučku pre vykonanie prerušenia fi

continue - Podobne ako break, až na to, že ignoruje aktuálnu slučku a ide na ďalšiu.

# Vytvorte slučku, ktorá priradí čísla od 1 do 5 # pre každé „otočenie slučky“ pre počítadlo v 1 2 3 4 5 urobte #Ak je hodnota počítadla rovná 3, ak [$ counter - ekv. 3], potom # Pokračovať zabráni analyzovaniu zvyšku cyklu #current skokom do ďalšieho kola, to znamená, že #hodnota 3 sa nevytlačí. pokračovať fi echo "$ counter" hotovo

declare: deklaruje premenné a priraďuje im hodnoty, rovnako ako sadzbu (fungujú rovnako). Môžeme to skombinovať s niektorými možnosťami: -i deklaruje celé čísla; -r pre premenné iba na čítanie, ktorých hodnotu nie je možné zmeniť; –A pre polia alebo „polia“; -f pre funkcie; -x pre premenné, ktoré je možné „exportovať“ mimo prostredia samotného skriptu.

deklarovať –i num = 12 deklarovať –x pi = 3.14

help: zobrazuje pomoc pre konkrétny príkaz.

úlohy: zobrazuje prebiehajúce procesy.

#W – –c zobrazíme názov príkazu, –p # pid (id procesu) každého procesu. zamestnania -cp

nech: vyhodnotí aritmetický výraz

let a = 11 let a = a + 5 # Nakoniec vytlačíme hodnotu a, ktorá je 16 echo "11 + 5 = $ a"

local: vytvorí lokálne premenné, ktoré by sa mali najlepšie použiť vo funkciách samotného skriptu, aby sa predišlo chybám. Môžete použiť rovnaké funkcie ako príkaz declare.

local v1 = "Toto je lokálna premenná"

odhlásenie: umožňuje úplné odhlásenie zo servera Shell; užitočné pre prípady, keď pracujeme s viac ako jedným oknom Shell, v ktorom príkaz exit umožní ukončenie iba jedného okna súčasne.

printf: umožňuje tlačiť údaje a formátovať ich. Má veľa možností, preto spomenieme niekoľko.

#% f sa vytlačí ako pohyblivé číslo, n pre nový # riadok printf "% fn" 5 5.000000 # & d umožňuje odovzdávať desatinné čísla ako argumenty printf "Existuje% d objednávok ocenených v% d dolárov. n" 20 500 Existuje 20 objednávok ocenených na 500 Dolárov.

read: načíta riadok zo štandardného vstupu (modul používaný napríklad pri načítaní údajov cez klávesnicu). Môžeme odovzdať možnosti ako: -t, aby sme nastavili čas na čítanie; -a, takže každé slovo je priradené k pozícii v poli aname; -d použiť oddeľovač, ktorý bude napísaný na koniec riadku; medzi inými.

echo "Zadajte svoje meno a stlačte kláves ENTER" # Prečítajte si názov premennej prečítané meno echo "Vaše meno je $ name"

typ: popisuje príkaz a jeho správanie. Môže byť užitočné zistiť definície údajov pre každý príkaz.

typ –a '[' #type nám hovorí, že [je príkaz zabudovaný do shellu [je zabudovaný príkaz Shell # -a umožňuje nájsť adresáre, ktoré obsahujú # spustiteľný súbor s napísaným názvom. [je / usr / bin / [

ulimit: obmedzuje prístup a použitie určitých systémových prostriedkov na procesy, ideálne pre programy, ktoré umožňujú administratívne zmeny alebo sú zamerané na rôzne typy používateľov. Pri nastavovaní limitu napíšeme číslo, ktoré predstavuje kilobajty limitu.

# Vidíme naše súčasné limity ulimit –a # -f umožňuje obmedziť používateľov na to, aby nemohli # vytvárať súbory väčšie ako 512000 Kb (500 #Mb) ulimit –f 512000 # -v obmedzuje virtuálnu pamäť procesu. ulimit –v 512000

čakať: čakať na pokračovanie určitého procesu alebo úlohy.

# Skript čaká na vykonanie procesu pid # 2585

počkaj 2585

Ďalšie užitočné príkazy, ktoré môžeme do skriptov pridať, sú reprezentované symbolmi.

!!: znovu spustiť posledný príkaz

! wer: vykoná posledný príkaz, ktorý sa začal výrazom „wer“.

'==', '! =', '>', '<', '> =' a '<=': relačné operátory.

|: Operátor OR sa zvyčajne spájal do dvoch regulárnych výrazov.

: príkaz escape, ktorý umožňuje formátovať výrazy. Napríklad: a pre zvukové upozornenie, n pre nový riadok, b pre backspace atď.

Ďakujem Juan Carlos Ortiz!

10 komentáre, nechajte svoj

Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Stredne ťažké dijo

    Skvelé! Každopádne 2 komentáre: Značka Ubuntu je z polovice príliš veľa, pretože zovšeobecňuje niečo, čo je všeobecné. A ak budú tieto výukové programy pokračovať, bolo by dobré, keby boli navzájom prepojené….
    Okrem toho je tento krok zaujímavý!

  2.   Použime Linux dijo

    Dobrý príspevok! Skvelé!

  3.   Giovanni escobar sosa dijo

    Chýbajú iba referencie pre tých, ktorí sa chcú v tejto veci dozvedieť viac. Niektoré dobré, aj keď nie je také ľahké ich nájsť v našich krajinách, sú
    - Praktický sprievodca príkazmi, editormi a programovaním v systéme Linux, Mark Sobell (kapitola 8)
    - Programovanie Pro Bash, Chris FA Johnson (aj keď je to pre tých, ktorí majú iné referencie alebo trochu viac znalostí).

    Dobrý článok.

  4.   Použime Linux dijo

    Dobré rande! Ďakujem!

  5.   Patricio Dorantes Jamarne dijo

    : @ Funkcia „prihlásiť sa ako“ vymazala môj predchádzajúci komentár, takže to zhrniem ďalej:
    zamestnania -cp
    bash: jobs: -c: neplatná možnosť
    úlohy: použitie: úlohy [-lnprs] [jobspec…] alebo úlohy -x príkaz [args]

    -eq -gt -lt neprijímajú premenné desatinnej čiarky, medzi fórom a fórom som zistil, že bc je dobrý spojenec:
    ak [`echo 9.999 10> 1 | bc` - ekv. XNUMX]; potom
    echo "9.999 10 je väčšie ako XNUMX, uistite sa, že procesor stále funguje"
    inak
    echo «9.999 10 nie je väčšie ako XNUMX, všetko funguje normálne
    fi

  6.   Nie z Brooklynu dijo

    Tento príspevok veľmi dobre sumarizuje všetky všeobecné informácie o bash skriptovaní:
    http://www.aboutlinux.info/2005/10/10-seconds-guide-to-bash-shell.html

    Na tomto webe nájdete veľa otázok a odpovedí o základných zvláštnostiach:
    http://unix.stackexchange.com/questions/tagged/bash

    Tu je niekoľko skutočne skvelých skriptov. Hej, môžete sa ich naučiť prečítaním skriptov iných ľudí:
    http://snipplr.com/search.php?q=bash&btnsearch=go

  7.   Nie z Brooklynu dijo

    Máte pravdu s tým, čo hovoríte, okrem bash. Každý systém, ktorý som videl, má bash v / bin / bash.

    Ale pre python, perl, ruby ​​atď. Je dobré ich použiť. Ja áno

  8.   Guille dijo

    Zhodou okolností na vysokej škole používame skriptovanie bash, takže údaje sú 10, veľmi dobré!

  9.   alex videl som dijo

    pdf verzia na stiahnutie by bola dobrá !! 😀

  10.   Marco Antonio De Fuentes dijo

    Veľmi dobrá stránka. Nakoniec som našiel niečo užitočné. Ďakujem.