Programování v bash - část 2

Druhá část toho mini-tutoriál programování v Praštit, kde se naučíme používat cyklů a další nástroje, které nám pomohou zlepšit naše funkce skripty.

Podmíněná podmínka If

Funkce If je použít filtr a provést operaci nebo úkol pro každý typ použitého filtru. Jeho struktura je následující:

Pokud [podmínka]; pak příkazy elif [podmínka]; pak další příkazy; fi příkazy

Příklad je zobrazen vedle smyčky For v příslušné části.

Cykly

1. I když: provede všechny příkazy zadané mezi do a done, pokud je podmínka pravdivá. Pokud mu chceme předat operátory porovnání, musí být výraz v závorkách.

zatímco CONDITION / COMMAND provádí příkazy

Příklad: násobící tabulka čísla

#! / bin / bash X = 1 echo „Zadejte číslo a stiskněte klávesu ENTER“ přečtěte M # Smyčka řídí, že X je menší nebo rovno 10, zatímco [$ X –le 10] do #In R ukládáme násobení X by MR = $ [X * M] # Tato multiplikace je vytištěna na obrazovce echo "$ M * $ X = $ R" # S let, zvýšíme hodnotu X o 1 jednotku, ať X = $ X + 1 hotovo

2. Pro: ukládá seznam prvků do proměnné, která bude použita k provádění určitých operací s každým cyklem.

pro VARIABLE v ELEMENTS dělají příkazy hotové

Příklad: program, který kopíruje soubor z jedné složky do druhé a nahrazuje starý soubor.

# / bin / bash # Založíme zdrojové a cílové adresáře ORIGIN = / home / user / Downloads DESTINATION = / home / user / Documents # Umístíme se do zdrojového CD $ ORIGIN # Ze všech souborů chceme pouze ten, který is # call FILE for FILE in * do ARCH-DESTINATION = "$ DESTINATION / $ FILE" # -f nám filtruje běžné soubory, protože adresáře jsou pro nás # nic dobrého. –Nt neodfiltruje # souborů „novějších“ než ty, které se nacházejí v cílové složce, pokud [-f $ FILE] && [$ FILE –nt $ ARCH-DESTINATION]; potom zopakujte „Kopírování $ SOUBOR ...“ # zkopírujeme soubor pomocí cp cp $ SOUBOR $ ARCH-DESTINATION hotovo #We cd pro opuštění zdrojové složky cd

Další příklad: skript, kde musí uživatel uhodnout náhodné číslo vygenerované počítačem.

# / bin / bash #Náhodné číslo je generováno od 1 do 10, je # uloženo v RANDOM RANDOM = $ [$ RANDOM% 10 + 1], zatímco [1] dělá echo –n "Zadejte číslo:" číst NUM # Porovnejte, pokud je počet zvolený uživatelem #equal to RANDOM; nezapomeňte použít $ k vyhodnocení #hodnot proměnných a nikoli jejich jmen, pokud [“$ NUM –eq„ $ RANDOM “]; pak ozvěte se „Máte pravdu!“ #break umožňuje ukončení smyčky při přerušení #Je-li počet menší než RANDOM elif [“$ NUM –gt„ $ RANDOM “]; potom ozvěna „Je to méně“ „Pokud ne, je větší než NÁHODNÉ, jinak echo„ JE TO větší “fi hotovo

3. Dokud: docela podobná struktura jako While, až na to, že se kód vždy provede, zatímco vyhodnocení podmínky je negativní, to znamená, že program pokračuje v provádění „dokud nedojde k podmínce“

dokud příkaz CONDITION / COMMAND neprovede příkazy

Příklad: vytiskněte čísla 10-20 v sestupném pořadí

#! / bin / bash CONT = 20 # Dokud je počítadlo menší než 10 (-lt, „nižší # než“), bude kód spuštěn do [$ CONT -lt 10]; do echo "COUNTER $ CONT" #A CONT je odečteno jednotkou, nechť CONT- = 1 hotovo

4. Vyberte: tento poslední cyklus je zvláštní případ, protože se obvykle používá k rychlému vytváření nabídek. Funguje podobně jako smyčka For.

vyberte VARIABILNÍ v SEZNAMU provedených příkazů

Příklad: dát uživateli možnost pokračovat nebo ukončit skript.

#! / bin / bash #item je proměnná, která reaguje na to, co si # uživatel vybere, Pokračovat a Dokončit jsou # možnosti, které má k dispozici, i když lze přidat další možnosti # více vybrat položku v Pokračovat Dokončit udělat # Pokud se uživatel rozhodne ukončíme program, pak s přestávkou opustíme cyklus. if [$ item = "Finish"]; pak je hotovo
Děkuji Juan Carlos Ortiz!

Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   Středně obtížné řekl

    Myslím něco takového: tar -cf - Directory | (cd / other / directory; tar -xvf -)

    Pak by to vypadalo jako / another / directory / Directory
    Takto jsem komprimoval adresář a vy jej dekomprimujete na jiném místě….

  2.   Miguel Angel řekl

    Dobrý den, dobře tuto, učím se o tom předmětu a všechno je v pořádku, jen jsem nebyl schopen vytvořit program, který mi pomáhá, aby zjistil, jestli mi můžete pomoci, prosím.

    Musím udělat cyklus, ve kterém obdrží jako parametry seznam zdrojového souboru, tento seznam přináší pouze jména (bez přípony), takže cyklus provede následující, vyhledejte uvedený název přijatý v adresáři (což je ten, který budeme hledat), extrahujte a zkopírujte soubor (celé jméno již s příponou) a absolutní cestu a vytvořte jej v jiném cílovém souboru.

    Zatím mám následující:

    při čtení řádku
    do
    echo -e "$ line"
    find / home / myuser / dof "$ line" -exec readlink -f {};
    done <testlist.txt Zatím jsem si přečetl soubor, každý řádek, který má, ale nedokážu ho vyhledat a extrahovat informace, pokud mi můžete pomoci, prosím, děkuji. Na zdraví

  3.   Pamela galaviz řekl

    Moc děkuji za příspěvek 🙂

  4.   Mario Xavier řekl

    ahoj ... Doufám, že v příštím cvičení pomůžete ... Rozbalte soubor v tgz v zadaném adresáři, kromě zadání uživatele a skupiny pro všechny existující adresáře a soubory a přidělení oprávnění souborům a adresářům
    poznámka: soubory připravené ke čtení a zápisu
    povolení ke spouštění adresářů

  5.   johnk řekl

    ARCH-DESTINATION je proměnná, do které chceme uložit cestu k cílovému souboru, kromě redundance. Potom do této proměnné označíme proměnnou DESTINATION, která výše obsahuje cestu ke složce Documents a přidáme „proměnnou“ FILE, která obsahuje název souboru. Pokud by tento soubor byl například list.doc, proměnná ARCH-DESTINATION by se rovnala /home/Usuario/Documentos/listado.doc

  6.   Pojďme použít Linux řekl

    Je to předchozí článek. Můžete k nim přistupovat na adrese http://usemoslinux.blogspot.com

    Objetí! Pavel.

  7.   Upřímný řekl

    Dobré ráno, kamaráde, jen děkuji, váš blog je velmi dobrý, ale nemohu dostat první část Programování v Bash, kde to dostanu díky, pozdravy

  8.   Saito Mordraw řekl

    Dvě mimořádné části, upřímně vám gratuluji.

    Prostě úžasné.

  9.   Fredy řekl

    Bien

  10.   Hugo řekl

    Ahoj, dělám program s PŘÍPADEM, co chci, aby udělal, a nevím jak, například:

    echo Vybírá možnost:
    minout
    echo 1. možnost 1
    echo 2. možnost 2
    echo 3. možnost 3
    echo 4. možnost 4
    echo 5. Ukončit
    číst var
    případ "$ var" v
    1)
    echo "Vybrali jste možnost 1"
    ;;
    2)
    echo "Vybrali jste možnost 2"
    ;;
    3)
    vyhodil "….."
    ;;
    4)
    vyhodil "…."
    ;;
    5)
    vyhodil "…"

    ;;
    *)
    echo "špatná volba"
    ;;
    že C.

    ok, co nevím, jak to udělat, je to, že když vyberu možnost 4, která má odejít, zeptejte se, jestli opravdu chci odejít, a dejte mi 2 možnosti Y & N

    a druhá je, že když vyberete něco jiného než čísla 1..5, nehlasujte pro mě ze skriptu….

    Mohl byste mi pomoci díky?

  11.   21. DAPAMAXNUMX řekl

    Ahoj, začal jsem skriptovat před 1 měsícem a díky tvým příspěvkům ze skriptů. Udělám asi 15-20. Předem moc děkuji. Ale teď nám náš učitel dal práci, ve které jsem stagnoval. Jelikož se učitel ptá:
    předání adresáře, zkopírujte do svého domova všechny soubory, které jsou v tomto adresáři abecedně, a pojmenujte je file1 file2 atd ... atd ...
    Teď jsem v okamžiku hledání nebo vyhledání, chtěl jsem použít find, ale když mu dávám chybový kód, jako bych to dal přes dev null, oprávnění odepřena, pak se mýlím a uvedením lokalizace jsem zde:
    vyhledejte $ 1 | grep "/ $ {1} \ $"
    ale samozřejmě s tím všichni vyjdou ...
    Děkuji vám, pokud jste si ji přečetli.
    Pokud mi můžete pomoci, byla by to velká laskavost.

  12.   Luis řekl

    Byl bych rád, kdybys mi s tím pomohl.
    1.-Zadejte celé číslo na klávesnici a zobrazte jej dvakrát a ztrojnásobte na obrazovce. 2. - Vytvořte program, který rozhodne, zda je číslo zadané pomocí klávesnice dělitelné 3 nebo ne.
    3.- Vytvořte program pro zjištění součtu: ???????? + ???????? + ???????? ??? ??????? ???????
    4. - Vytvořte program pro nalezení součtu 1 + 3 + 5 + 7 + 9 · · + (2n + 1).
    5.-Vytvořte program, který vytiskne slovo Linux na obrazovku 10krát
    6.-Vytvořte program, který vytiskne slovo Linux na obrazovku tolikrát, kolikrát uvede uživatel.
    7.-Zadejte částku v hodinách a převeďte ji na minuty a sekundy.
    8. - Vypočítejte plochu trojúhelníku
    9. - Zadejte číslo pomocí klávesnice, pak pokud zadáte 2, mělo by to být na druhou, 3 krychle, 4 na čtvrté a tak dále až 6.
    10 - Vypočítejte důchod, který musí student zaplatit, je třeba zadat speciální kód a dny zpětně:
    KÓD
    SPECIALITA
    MNOŽSTVÍ
    POČAS DENU
    1
    VÝPOČETNÍ
    160
    1
    2
    OŠETŘOVATELSTVÍ
    150
    1.5
    3
    SEKRETARIÁT
    140
    2
    4
    TURISTIKA
    180
    2.5
    5
    ÚČETNICTVÍ
    160
    1
    Musíte prokázat studijní specializaci, náklady na důchod, výchozí hodnotu a celkovou částku, která má být zaplacena.

  13.   Charly řekl

    Dobrý den, může mi někdo pomoci?
    Potřebuji «Požádat o tři slova pomocí klávesnice a zobrazit je v abecedním pořadí od A do z»
    V jazyce Bash nebo sh pro LINUX porfaborrrr