Pwogramasyon nan bach - pati 2

Pati de nan sa a mini-leson patikilye pwogram nan Bach, kote nou aprann itilize sik ak lòt zouti ki pral ede nou amelyore fonksyonalite nou yo Scripts.

Si kondisyonèl la

Fonksyon an nan Si se pou aplike pou yon filtre ak fè yon operasyon oswa travay pou chak kalite filtre aplike. Estrikti li se jan sa a:

Si [kondisyon]; Lè sa a, elif kòmandman [kondisyon]; Lè sa a, lòt bagay kòmandman; fi kòmandman

Yon egzanp yo montre akote bouk la Pou nan seksyon respektif li yo.

Cycles

1. Pandan ke: li pral egzekite tout kòmandman yo espesifye ant fè ak fè osi lontan ke kondisyon an se vre. Si nou vle pase konparezon operatè li, ekspresyon an dwe nan parantèz.

pandan ke KONDISYON / KANDMAND fè kòmandman fè

Egzanp: tab miltiplikasyon nan yon nonb

#! / bin / bash X = 1 eko "Antre nan yon nimewo epi peze ENTER" li M # Bouk la kontwole ke X se mwens pase oswa egal a 10 pandan y ap [$ X -le 10] fè # Nan R nou magazen miltiplikasyon de X pa MR = $ [X * M] #Miltiplikasyon sa a enprime sou eko ekran an "$ M * $ X = $ R" #Ak kite, nou ogmante valè X pa 1 inite kite X = $ X + 1 fè

2. Pou: magazen yon lis eleman nan yon varyab, ki pral itilize pou fè sèten operasyon avèk chak sik.

pou VARIABLE nan eleman fè kòmandman fè

Egzanp: pwogram ki kopye yon dosye soti nan yon katab nan yon lòt, ranplase yon dosye fin vye granmoun.

# / bin / bash #Nou etabli repèrtwar sous ak destinasyon ORIJIN = / lakay / itilizatè / Downloads DESTINASYON = / lakay / itilizatè / Dokiman # Nou pozisyon tèt nou nan CD a sous $ ORIJIN # Nan tout dosye yo, nou sèlman vle yon sèl la ki se # rele DOSYE pou DOSYE nan * fè ARCH-DESTINATION = "$ DESTINASYON / $ DOSYE" # -f filtre nou dosye regilye, depi repèrtwar yo # pa gen anyen bon pou nou. –Pa filtre # dosye "plus" pase sa yo # jwenn nan katab la destinasyon si [-f $ DOSYE] && [$ DOSYE -nt $ ARCH-DESTINASYON]; Lè sa a, eko "Kopye $ DOSYE ..." # nou kopye dosye a ak cp cp $ DOSYE $ ARCH-DESTINASYON fi fè #Nou fè cd sòti katab la sous cd

Yon lòt egzanp: script kote itilizatè a dwe devine yon nimewo o aza ki te pwodwi pa òdinatè a.

# / bin / bash #Yon nimewo o aza ki te pwodwi de 1 a 10, li se # sove nan RANDOM RANDOM = $ [$ RANDOM% 10 + 1] pandan y ap [1] fè eko -n "Mete yon nimewo:" li NUM # Konpare si nimewo itilizatè a chwazi a se # egal a RANDOM; sonje pou itilize $ pou evalye # valè varyab yo e non non yo si ["$ NUM –ek" $ RANDOM "]; Lè sa a, eko "Ou te resevwa li dwat!" # kraze pèmèt fini bouk la pandan y ap kraze # Si nimewo a se mwens pase RANDOM elif ["$ NUM –gt" $ RANDOM "]; Lè sa a, eko "Li se mwens" "Si se pa sa, li pi gran pase RANDOM lòt moun eko" se pi gran "fi fè

3. Jouk: byen menm jan an nan estrikti ak Pandan ke, eksepte ke kòd la toujou egzekite pandan y ap evalyasyon an nan kondisyon an se negatif, se sa ki, pwogram nan ap kontinye egzekite "jiskaske kondisyon an rive"

jiskaske KONDISYON / KANDMAND fè kòmandman fè

Egzanp: enprime nimewo 10-20 yo nan lòd desandan

#! / bin / bash CONT = 20 # Osi lontan ke kontwa an se mwens pase 10 (-lt, "pi ba # pase") kòd la egzekite jiskaske [$ CONT -lt 10]; fè eko "COUNTER $ CONT" #A CONT se soustraksyon pa yon inite kite CONT- = 1 fè

4. Chwazi: sik sa a dènye se yon ka espesyal, depi li se jeneralman itilize fè meni byen vit. Li travay menm jan ak bouk la Pou.

chwazi VARIABLE nan LIS kòmandman yo fè

Egzanp: bay itilizatè a kapasite pou kontinye oswa fini script la.

#! / bin / bash #item se yon varyab ki reponn a sa # itilizatè a chwazi, Kontinye ak Fini yo se # opsyon ki disponib pou li, byenke lòt opsyon yo ka ajoute # plis atik chwazi nan Kontinye Fini c fini pwogram lan, lè sa a ak repo nou sòti sik la. si [$ atik = "Fini"]; Lè sa a, kraze fi fè
Mèsi Juan Carlos Ortiz!

Kontni an nan atik la respekte prensip nou yo nan etik editoryal. Pou rapòte yon erè klike sou isit la.

13 kòmantè, kite ou

Kite kòmantè ou

Adrès imèl ou pa pral dwe pibliye. Jaden obligatwa yo make ak *

*

*

  1. Responsab pou done yo: Miguel Ángel Gatón
  2. Objektif done yo: Kontwòl SPAM, jesyon kòmantè.
  3. Lejitimasyon: konsantman ou
  4. Kominikasyon nan done yo: done yo pa pral kominike bay twazyèm pati eksepte pa obligasyon legal.
  5. Done depo: baz done anime pa rezo Occentus (Inyon Ewopeyen)
  6. Dwa: Nenpòt ki lè ou ka limite, refè ak efase enfòmasyon ou yo.

  1.   Mwayen Difisil diro

    Mwen panse ke yon bagay tankou sa a: tar -cf - Anyè | (CD / lòt / anyè; tar -xvf -)

    Lè sa a, li ta sanble / lòt / anyè / Anyè
    Nan fason sa a mwen konprese yon Anyè epi ou dekonprese li nan yon lòt kote ....

  2.   Miguel Angel diro

    Bonjou, bon tuto, mwen aprann sou sijè a ak tout bagay ki bon, sèlman mwen pa te kapab fè yon pwogram ki ede m ', yo wè si ou ka ede m' tanpri.

    Mwen bezwen fè yon sik, nan ki li pral resevwa kòm paramèt yon lis yon dosye sous, lis sa a sèlman pote non (san yo pa ekstansyon), se konsa ke sik la fè bagay sa yo, gade pou di non ou te resevwa nan yon anyè (ki se youn nan nou pral gade pou), ekstrè ak kopi dosye a (non konplè deja ak ekstansyon) ak chemen an absoli ak kreye li nan yon lòt dosye destinasyon.

    Se konsa, lwen mwen gen bagay sa yo:

    pandan y ap li liy
    do
    eko -e "$ liy"
    jwenn / lakay / itilizatè mwen / dof "$ liy" -exec readlink -f {};
    fè <testlist.txt Se konsa, lwen mwen li dosye a, chak liy li genyen, men mwen pa ka fè li gade pou ki dosye ak ekstrè enfòmasyon an, si ou ka ede m 'tanpri, di ou mèsi. Cheers

  3.   Pamela galaviz diro

    Mèsi anpil pou kontribisyon an 🙂

  4.   Mario Xavier diro

    hi ... Mwen espere ke ou ka ede nan pratik kap vini an ... Ouvri dosye nan tgz nan anyè a espesifye, nan adisyon a ki espesifye itilizatè ak gwoup pou tout repèrtwar ki deja egziste ak dosye, ak asiyen otorizasyon nan dosye ak repèrtwar
    nòt: dosye pare pou lekti ak ekri
    repètwa ekzekisyon pèmisyon

  5.   John diro

    ARCH-DESTINASYON se yon varyab nan ki nou vle pou konsève pou chemen an nan dosye a destinasyon, padonnen èkse la. Lè sa a, nan varyab sa a nou endike varyab la DESTINASYON, ki pi wo a gen chemen nan dosye a Dokiman epi nou ajoute "varyab" DOSYE a, ki gen non dosye a. Si dosye sa a te, pou egzanp, list.doc, varyab ARCH-DESTINATION la ta egal a /home/Usuario/Documentos/listado.doc

  6.   Ann itilize Linux diro

    Li se atik la anvan yo. Ou ka jwenn aksè nan li nan http://usemoslinux.blogspot.com

    Anbrase! Pòl.

  7.   Frank diro

    Bonjou konpayon jis mèsi, trè bon blog ou a, men mwen pa ka jwenn premye pati nan Pwogramasyon nan Bash, kote mwen jwenn li mèsi, bonjou

  8.   Saito Mordraw diro

    De pati ekstraòdinè, felisitasyon sensè mwen.

    Senpleman bèl bagay.

  9.   Fredi diro

    Oke

  10.   Hugo diro

    Bonjou, mwen fè yon pwogram ak yon CASE, ki sa mwen vle li fè e mwen pa konnen ki jan, pou egzanp:

    eko Chwazi yon opsyon:
    manke
    eko 1. opsyon 1
    eko 2. opsyon 2
    eko 3. opsyon 3
    eko 4. opsyon 4
    eko 5. Sòti
    li var
    ka "$ var" nan
    1)
    eko "Ou chwazi opsyon 1"
    ;;
    2)
    eko "Ou chwazi opsyon 2"
    ;;
    3)
    jete "... .."
    ;;
    4)
    jete "...."
    ;;
    5)
    jete "..."

    ;;
    *)
    eko "move opsyon"
    ;;
    ki C

    ok sa mwen pa konnen ki jan fè li se ke lè mwen chwazi opsyon 4 ki se sòti, mande si mwen reyèlman vle sòti, epi ban m '2 opsyon Y & N

    ak lòt la se ke lè ou chwazi yon lòt bagay pase nimewo yo 1..5 pa vote pou mwen soti nan script la ....

    Èske ou ta ka ede m 'mèsi.

  11.   DAPAMA21 diro

    Hi, mwen te kòmanse scripting 1 mwa de sa ak gras a posts script ou. Mwen pral fè sou 15-20. Mèsi anpil davans. Men koulye a, pwofesè nou an te ban nou yon travay nan ki mwen te vin kowonpi. Depi pwofesè a mande:
    pase yon anyè, kopye nan kay ou tout dosye yo ki nan anyè sa a alfabetik epi nonmen yo file1 file2 elatriye ... elatriye ...
    Koulye a, mwen nan moman sa a nan jwenn oswa lokalize, mwen te vle sèvi ak jwenn men lè yo ba li yon kòd erè tankou mwen mete l 'nan dev nil, otorizasyon yo refize Lè sa a, mwen vin mal epi mete lokalize a mwen isit la
    lokalize $ 1 | grep "/ $ {1} \ $"
    men nan kou ak sa a yo tout soti ...
    Mèsi anpil si ou li li.
    Si ou ka ede m 'li ta yon gwo favè.

  12.   Luis diro

    Mwen ta renmen ou ede m 'ak sa.
    1.-Mete yon nimewo antye sou klavye a epi montre de fwa ak trip nimewo sa a sou ekran an. 2.- Fè yon pwogram pou deside si yon nimewo antre nan klavye divizib pa 3 ou non.
    3.- Fè yon pwogram pou jwenn sòm total la nan: ???????? + ???????? + ???????? + ??????? ???????
    4.- Fè yon pwogram pou jwenn sòm total 1 + 3 + 5 + 7 + 9 · · · + (2n + 1).
    5.-Fè yon pwogram ki enprime mo Linux sou ekran an 10 fwa
    6.-Fè yon pwogram ki enprime mo Linux la sou ekran an kantite fwa yon itilizatè endike.
    7.-Mete yon kantite lajan nan èdtan ak konvèti yo nan minit ak segonn.
    8.-Kalkile sipèfisi yon triyang
    9.-Mete yon nimewo sou klavye a, lè sa a si ou antre nan 2 li ta dwe kare, 3 kib, 4 nan katriyèm lan ak sou sa jiska 6.
    10-Kalkile pansyon ke yon elèv dwe peye, kòd spesyalite a dwe antre, ak jou yo nan aryere yo:
    KODD
    ESPESYALITE
    KANTITE
    DURATION PA JOU
    1
    ENFUTMASYON
    160
    1
    2
    ENFIMYÈ
    150
    1.5
    3
    SEKRETARIAT
    140
    2
    4
    Touris
    180
    2.5
    5
    ACCOUNTING
    160
    1
    Ou dwe montre espesyalite w ap etidye a, pri pansyon an, default la ak montan total ou dwe peye.

  13.   Charly diro

    Bonjou, yon moun ka ede mwen?
    Mwen bezwen «Mande twa mo pa klavye epi montre yo nan lòd alfabetik de A a z»
    Nan lang Bash oswa sh pou LINUX porfaborrrr