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ď.
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ý!
Dobrý príspevok! Skvelé!
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.
Dobré rande! Ďakujem!
: @ 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
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
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
Zhodou okolností na vysokej škole používame skriptovanie bash, takže údaje sú 10, veľmi dobré!
pdf verzia na stiahnutie by bola dobrá !! 😀
Veľmi dobrá stránka. Nakoniec som našiel niečo užitočné. Ďakujem.