Algoritmos em Shell Script.doc

  • Upload
    birkovi

  • View
    223

  • Download
    0

Embed Size (px)

Citation preview

  • 8/17/2019 Algoritmos em Shell Script.doc

    1/26

  • 8/17/2019 Algoritmos em Shell Script.doc

    2/26

  • 8/17/2019 Algoritmos em Shell Script.doc

    3/26

    • Gorn S5ell 9 5: De en&ol&i!o por Da&i! Gorn" tam #m !o ;ell ?a " # um upercon unto !o i to #" po ui to!a a $acili!a!e !o 5 e a ela agregou muita outra . A compati ili!a!e total

    5 &em trazen!o muito u u rio e programa!ore !e 5ell para e te am iente.

    • ;oune Again S5ell a 5: De en&ol&i!o inicialmente por ;rian Co e H5et IameJ" e te # o 5ell !o pro eto = ,. O n@mero !e eu a!epto # o *ue mai cre ce em to!o o mun!o" e a por*ue ele S5ell pa!r)o !o ?inu " e a por ua gran!e !i&er i!a!e !e coman!o " *ue incorpora inclu i&e!i&er o coman!o caracter+ tico !o H S5ell.

    • H S5ell c 5: De en&ol&i!o por ;ill KoJ" !a ,ni&er i!a!e !e ;er9leJ" # o 5ell mai utiliza!o emam iente ;SD. Coi ele *uem intro!uziu o 5i t'rico !e coman!o . A e trutura()o !e eu coman!o# em imilar L !a ?inguagemC . Seu gran!e peca!o" $oi ignorar a compati ili!a!e com o 5" partin!o por um camin5o pr'prio.

    Variáveis / Operadores

    Variáveis8m l'gica !e programa()o" &ari &ei )o e pa(o re er&a!o na mem'ria para armazenar um !a!o a erutiliza!o em uma opera()o aritm#tica" l'gica e em atri ui( e !e &alore .

    O &alor !a &ari &el po!e mu!ar !e acor!o com o an!amento !o algoritmo como" por e emplo" no c lculoum m#!ia anual para aluno !e uma e cola. Ha!a aluno ter ua nota " on!e e ta er)o calcula!a pao ten()o !a m#!ia.

    Alguma &ari &ei po!e ter um &alor $i o como a $'rmula para o c lculo !o raio !e uma circun$er-nciaon!e i tem um &alor apro ima!o !e M"1416... A*ui" i empre ter e te me mo &alor.

    Ante !e come(ar a criar &ari &ei " # importante eguir alguma !ica para nome la :1. ome !e &ari &ei n)o po!em er iguai a pala&ra re er&a!a " nem tampouco conter caractere e

    N E P B

    8 emplo: i$" w5ile" $or.

    2. )o inicie &ari &ei com n@mero e empre atri ua nome *ue $acilite o tra al5o $uturo. )o atrinome a &ari &ei como a" " c... Se o !e en&ol&e!or !o c'!igo n)o ti&er o co tume !e comentar o euc'!igo" e e tipo !e nome n)o a u!ar em na!a a lem rar a utili!a!e !a &ari &elB

    M. Hui!a!o com nome muito e ten o . Qia !e regra" o taman5o !o nome !e uma &ari &el n)o !e&eultrapa ar 12R caractere B

    3

  • 8/17/2019 Algoritmos em Shell Script.doc

    4/26

    4. )o po!e conter e pa(o em rancoB

    . a!ronize no *ue ito !e letra mai@ cula ou min@ cula . Sempre procuro por nome com letra emmin@ culo.

    8m 5ell" !i$erente !e outra linguagen !e programa()o" n)o $az e nece rio in!icar o tipo !a &ari )o # preci o in$ormar e a &ari &el er um n@mero inteiro" real" caractere tring ou l'gico.

    8 emplo !e programa emC :

    inclu!e < t!io.5>&oi! mainT int conta!orB $loat recoDoUuiloB !ou le a aDeHam ioB c5ar ?etraDigita!aB int V!a!e anoel" V!a!eKoao" V!a!e ariaB

    !ou le a aDoDolar" a aDo arco" a aDo e o" a aDoCrancoB.......X

    8 emplo !e um S5ell Script:

    Y in/ a 5

    &arZ3te te3

    numZM

    ec5o 3[&ar [num3

    erce a *ue a &ari &el&ar # recon5eci!a pelo 5ell atra !o caractere[ . 8ntre o nome !e uma &ari &el e oinal !e atri ui()o Z " n)o po!em 5a&er e pa(o em ranco. Do contr rio" oca ionar erro . A !i$ere

    entre a !ua &ari &ei " # *ue uma # um n@mero inteiro e a outra uma tring caracteriza!a pela a pa

    Ha o e i ta uma &ari &el entre a a pa !upla " o &alor !e ta er con i!era!o. Se e ti&er entre a\\ er con i!era!o o &alor literal. 8" por @ltimo" e a &ari &el e ti&er entre cra e ]] " o comai tema er e ecuta!o.

    8 i tem &ari &ei pr# !e$ini!a no i tema para erem utiliza!a . Qale lem rar *ue ao tra al5ar comScript" po!e e interagir com coman!o interno !o i tema= ,/?inu " comocat"tail"l " entre outro . 8 a

    intera()o er &i ta no !ecorrer !o artigo.Qari &ei 8 peciai :

    4

    https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/

  • 8/17/2019 Algoritmos em Shell Script.doc

    5/26

    • [N ^ o!o o &alore pa a!o como argumento B• [n ^ O &alor !o argumento na po i()o nB

    • [0 ^ ome !o cript *ue e t en!o e ecuta!oB

    • [1 [_ ^ ar%metro pa a!o pela lin5a !e coman!oB

    • [ ^ otal !e par%metro pa a!o B

    • [` ^ Qalor !e retorno !o @ltimo coman!o ou !e to!o o criptB

    • [[ ^ @mero !o proce o e ecuta!o VD .

    OperadoresA ai o" uma li tagem !e opera!ore l'gico " con!icionai e aritm#tico utiliza!o para e cre&er cript

    5ell com e trutura !e controle " $un( e " entre outro .

    Opera!ore Aritm#tico :• ^ A!i()o• ^ Su tra()o

    • N ^ ultiplica()o

    • / ^ Di&i )o

    • NN ^ 8 ponencia()o

    • b ^ Ie to !a !i&i )o mo!

    Opera!ore !e Hompara()o:• Z ^ Vgual tring• YZ ^ De igual!a!e

    • < ^ enor *ue

    • > ^ aior *ue• Z ^ aior ou igual

    Opera!ore !e 8 pre e Hon!icionai :• lt ^ @mero # menor *ue ?e 5an• gt ^ @mero # maior *ue =reater 5an

    le ^ @mero # menor ou igual ?e 8*ual• ge ^ @mero # maior ou igual =reater8*ual

    5

  • 8/17/2019 Algoritmos em Shell Script.doc

    6/26

    • e* ^ @mero # igual 8Uual

    • ne ^ @mero # !i$erente ot8*ual

    • a ^ 8 l'gico A D

    • o ^ O, l'gico O,

    e te em Ar*ui&o :• ! ^ Se $or um !iret'rio• e ^ Se e i tir

    • z ^ Se e ti&er &azio

    • $ ^ Se conti&er te to

    ^ Se o taman5o !o ar*ui&o $or maior *ue zero• r ^ Se o ar*ui&o tem permi )o !e leitura

    • w ^ Se o ar*ui&o tem permi )o !e e crita

    • ^ Se o ar*ui&o po!e er e ecuta!o

    • nt ^ Se o ar*ui&o $or mai recente ew 5an

    • ot ^ Se o ar*ui&o # mai antigo Ol!er 5an

    • e$ ^ Se o ar*ui&o # o me mo 8*ualCile

    Primeiros algoritmos

    ara a con tru()o !e algoritmo " # muito importante a organiza()o !o c'!igo. ara e te artigo" er egui

    um pa!r)o para a cria()o !o algoritmo " como mo tra!o a ai o:Y/ im/ a 5Autor:Data:

    A primeira lin5a e peci$ica o interpreta!or" *ue # in!ica!o pelo caractereY" termo con5eci!o como5e ang. O caractere" igni$ica *ue a lin5a # um coment rio e n)o !e&er er interpreta!a pelo 5ell.

    ara iniciarmo o primeiro cript" a ra o terminal e" !e acor!o com a ua pre$er-ncia" e col5a um e!itorte to para come(ar:

    nano alg.001.sh

    6

  • 8/17/2019 Algoritmos em Shell Script.doc

    7/26

    Dentro !o e!itor !e te to" &amo e cre&er no o primeiro algoritmo. 8 te algoritmo ter a $un()o !e re!oi n@mero !o u u rio e e$etuar uma oma.

    Algoritmo 001:

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue rece e !oi n@mero pelo u u rio e realiza a oma !e te

    ec5o 3Digite o primeiro n@mero: 3rea! num1ec5o 3Digite o egun!o n@mero: 3rea! num2

    omaZ[ num1 num2ec5o 3 otal: [ oma3

    Sal&e o ar*ui&o e" em egui!a" l5e atri ua a permi )o !e e ecu()o:

    sudo chmod ! alg001.sh" ./alg001.sh

    A &ari &ei $oram !eclara!a unto ao c'!igo e $oram utiliza!a tr- . O coman!oec5o # u a!o paraimprimir in$orma( e na tela. Orea!" l- o conte@!o !a &ari &el.

    A ai o" er)o apre enta!o mai e emplo !e algoritmo . roce!a !a me ma $orma como mo tra!oanteriormente" empre crian!o um no&o ar*ui&o !e te to e ap' eu t#rmino" al&e o e l5e !- permie ecu()o.

    Algoritmo 002:

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue calcula o !e conto e total !o &alor !e uma compra

    ec5o 3Qalor !o pro!uto: 3rea! &alpec5o 3Uuanti!a!e !e pro!uto : 3rea! *t!ec5o 3Vn$orme o &alor !o !e conto: 3rea! !e c

    H lculo !o total inicial !a compratcompraZ[ &alpN*t!

    H lculo para a er o !e contot!e cZ[ tcompraN!e c/100

    7

  • 8/17/2019 Algoritmos em Shell Script.doc

    8/26

    O &alor $inal !a compra er o &alor total meno o !e contototalZ[ tcompra t!e c

    ec5o 3 otal !a Hompra : [total3

    ara e te e emplo $oram u a!a ei &ari &ei " epara!o o c lculo para $icar mai $ cil o apree&itar erro no re ulta!o $inal.

    A gran!e !i$icul!a!e *ue muito en$rentam em apren!er l'gica !e programa()o" # oriun!o !e uma a e $racna matem tica. o !oi e emplo utiliza!o " $oram po to elemento !a matem tica para re olu()o ! pro lema !o coti!iano.

    Algoritmo 00M:

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue rece e tr- nota $orneci!a pelo u u rio e calcula a m#!ia $inal

    O &alore !a !ua &ari &ei a ai o e t)o entre cra eO coman!o !ate" leep e clear $azem parte !o i tema= ,/?inuO coman!o !ate retorna a !ata e 5ora atual !o i tema. A*ui $oi utiliza!o o coman!o!ate para retornar epara!amente o !ia b! " m- bm " ano b e 5ora b time

    !ataZ]!ate b!/bm/b ]5oraZ]!ate b ]

    ec5o 3Data atual: [!ata3ec5o 3dora atual: [5ora3

    [,S8I # uma &ari &el pr# !e$ini!a !o i tema *ue e i e o u u rio atual loga!o no i temaec5o 3;em &in!o u u rio [,S8I3

    Iealiza uma pau a !e M egun!o " ou mai &oc- # *ue !e$ine"ante !e e ecutar o pr' imo coman!oleep MHoman!o *ue er&e para limpar a tela

    clear

    ec5o 3Vn$orme o nome !o aluno: 3rea! nomeec5o 3Digite a primeira nota 3rea! nota1ec5o 3Digite a egun!a nota 3rea! nota2ec5o 3Digite a terceira nota 3rea! notaM

    me!iaZ[ nota1 nota2 notaM /M

    8

    https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/

  • 8/17/2019 Algoritmos em Shell Script.doc

    9/26

    ec5o 3A m#!ia $inal !o aluno [nome #: [me!ia3

    e te @ltimo algoritmo" !ei uma incrementa!a com coman!o !o i tema = ,/?inu . 8 a # uma !agran!e &antagen !e tra al5ar com S5ell Script.

    Ciz o coment rio !ireto no c'!igo" i o # importante" poi " com o !ecorrer !o tempo" &oc- terminae *uecen!o a $uncionali!a!e !e um c'!igo" principalmente *uan!o e te pa a a ter muita lin5a .

    me!i!a *ue o algoritmo $orem aumentan!o !e comple i!a!e" apre entarei outro coman!o !o= ,/?inu unto com e plica( e .

    Algoritmo 004:

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue in&erte o &alor !a &ari &ei8 te &alor !e&e er in$orma!o pelo u u rio

    ec5o 3Digite um &alor *ual*uer: 3rea! &ar1ec5o 3Digite um outro &alor *ual*uer: 3rea! &ar2

    ec5o 3Qalore atuai !a &ari &ei : 3ec5o 3&ar1 Z [&ar1 f &ar2 Z [&ar2 3

    Ser cria!a mai uma &ari &el *ue armazenar um !o &alorepara realizar a troca

    au Z3[&ar23&ar2Z3[&ar13&ar1Z3[au 3

    O ec5o em nen5uma in$orma()o er&e para pular uma lin5aec5o

    ec5o 3Qalore in&erti!o !a &ari &ei : 3ec5o 3&ar1 Z [&ar1 f &ar2 Z [&ar2 3

    Algoritmo 00 :

    Y/ in/ a 5Autor: 9666Data: 20/0R/201MAlgoritmo con&erte em grau Hel iu e apre enta a con&erti!a

    em grau Ca5ren5eit. A $'rmula !e con&er )o #: CZ _NH 160 / "en!o C a temperatura em Ca5ren5eit e H a temperatura em Hel iu .

    9

  • 8/17/2019 Algoritmos em Shell Script.doc

    10/26

    ec5o 3Vn$orme a temperatura em grau Hel iu : 3rea! cel

    $a5Z[ _N[cel 160

    ec5o 3 emperatura em Ca5ren5eit: [$a53

    #strutura de seleção

    ,ma e trutura !e ele()o" permite a e col5a !e um grupo !e a( e a erem e ecuta!a *uan!o !etermina!acon!i()o $or ati $eita.

    8m 5ell" utiliza e oi$ "te t e/ouca e. O elementote t po!e er u titu+!o pori$ con!i()o 7. O i$ # a tante con5eci!o em outra linguagen !e programa()o" em como o ca e.

    8 trutura !oi$ :

    i$ con!i()o 7t5en < e*u-ncia !e coman!o >$i

    O coman!oi$ ir te tar e a con!i()o # &er!a!eira" ca o im" ent)o t5en " e ecute a e*u-ncia !e coman!o .A e trutura !e ele()o !oi$ encerra com o$i.

    F po +&el in$ormar o *ue er $eito" ca o uma con!i()o e a $al a:

    i$ con!i()o 7B t5en < e*u-ncia !e coman!o > el e < e*u-ncia !e coman!o >$i

    o e emplo anterior" ca o a con!i()o n)o e a &er!a!eira" er e ecuta!o um outro loco !e coman!o!i$erente !o primeiro e emplo *ue n)o e ecutaria na!a" ca o a con!i()o $o e $al a.

    Outro ponto a er o er&a!o" # *ue ot5en e t na primeira lin5a" unto com a con!i()o. V o # po +&el pmeio !o caractereB *ue permite e ecutar coman!o em e*u-ncia.

    Algoritmo 006:

    Y/ in/ a 5Autor: 9666Data: 20/0R/201MAlgoritmo *ue in$orma e o n@mero # impar ou par

    10

  • 8/17/2019 Algoritmos em Shell Script.doc

    11/26

    O n@mero er +mpar e o re to !a !i&i )o por 2 $or igual a 1e $or 0" o n@mero # par.

    ec5o 3Digite um n@mero: 3

    rea! num8$etuei o c lculo *ue retorno o re to !a !i&i )o !e um n@mero como opera!or b. Atri uir o nome a &ari &el !e mo! re$erente a mo!ular bo i$ te ta apena &ari &ei por i o $iz o c lculo ante at# por *ue t)o !e organiza()o

    mo!Z[ [numb2

    i$ [mo! e* 1 7t5en ec5o 3O n@mero [num # imparY3 el e ec5o 3O n@mero [num # parY3$i

    A ai o" o me mo algoritmo" por#m" utilizan!o o coman!ote t. O re ulta!o $inal er o me mo.

    Algoritmo 006.1:

    Y/ in/ a 5Autor: 9666Data: 20/0R/201MAlgoritmo *ue in$orma e o n@mero # impar ou par O n@mero er +mpar e o re to !a !i&i )o por 2 $or igual a 1

    e $or 0" o n@mero # par.

    ec5o 3Digite um n@mero: 3rea! num

    mo!Z[ [numb2

    i$ te t [mo! e* 1t5en ec5o 3O n@mero [num # imparY3 el e ec5o 3O n@mero [num # parY3$i

    Algoritmo 00R:

    Y/ in/ a 5 Autor: 9666 Data: 20/0R/201M Algoritmo *ue rece e tr- n@mero e o e cre&e em

    cre cente e in$ormar e e te )o iguai

    11

  • 8/17/2019 Algoritmos em Shell Script.doc

    12/26

    ec5o 3Digite um n@mero: 3 rea! num1

    ec5o 3Digite o egun!o n@mero: 3 rea! num2

    ec5o 3Digite o terceiro n@mero: 3 rea! numM

    Ser)o ei po i ili!a!e po +&ei para !eterminar *ualn@mero # maior *ue o outro. A*ui e tou u an!o opera!ore relacionai

    gt maior *ue e a an! *ue # o e l'gico

    i$ [num1 gt [num2 a [num1 gt [numM a [num2 gt [numM 7t5en ec5o 3O n@mero em or!em cre cente )o: [numM" [num2 e [num13 eli$ [num2 gt [num1 a [num2 gt [numM a [num1 gt [numM 7t5en ec5o 3O n@mero em or!em cre cente )o: [numM" [num1 e [num23 eli$ [numM gt [num1 a [numM gt [num2 a [num1 gt [num2 7t5en ec5o 3O n@mero em or!em cre cente )o: [num2" [num1 e [numM3 eli$ [num1 gt [num2 a [num1 gt [numM a [numM gt [num2 7t5en ec5o 3O n@mero em or!em cre cente )o: [num2" [numM e [num13 eli$ [num2 gt [num1 a [num2 gt [numM a [numM gt [num1 7t5en ec5o 3O n@mero em or!em cre cente )o: [num1" [numM e [num23 eli$ [numM gt [num1 a [numM gt [num2 a [num2 gt [num1 7t5en ec5o 3O n@mero em or!em cre cente )o: [num1" [num2 e [numM3 el e ec5o 3O n@mero )o iguai 3$i

    Algoritmo 00 :

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue rece e tr- nota $orneci!a pelo u u rio e calcula a m#!ia $inale in$orma e o aluno $oi apro&a!o ou repro&a!o com a m#!ia com !uaca a !ecimai

    O &alore !a !ua &ari &ei a ai o e t)o entre cra eO coman!o !ate" leep e clear $azem parte !o i tema= ,/?inuO coman!o !ate retorna a !ata e 5ora atual !o i tema. A*ui$oi utiliza!o o coman!o !ate para retornar epara!amente o!ia b! " m- bm " ano b *uatro !+gito e 5ora b time

    !ataZ]!ate b!/bm/b ]5oraZ]!ate b ]

    12

    https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/

  • 8/17/2019 Algoritmos em Shell Script.doc

    13/26

    ec5o 3hhhhhhhhhhhhhhhhhhhhhhhhhhh3

    ec5o 3Data atual: [!ata3ec5o 3dora atual: [5ora3

    O coman!o ec5o em argumento " permite pular uma lin5aec5oec5o e 3HA?H,?A FDVA 201M3ec5o

    [,S8I # uma &ari &el pre!e$ini!a !o i tema *ue e i e o u u rio atual loga!o no i tema

    ec5o 3;em &in!o u u rio [,S8I3

    ec5o 3hhhhhhhhhhhhhhhhhhhhhhhhhhh3

    Iealiza uma pau a !e M egun!o " ou mai &oc- # *ue !e$ine"ante !e e ecutar o pr' imo coman!o

    ec5oec5o 3Vn$orme o nome !o aluno: 3rea! nomeec5o 3Digite a primeira nota 3rea! nota1ec5o 3Digite a egun!a nota 3rea! nota2ec5o 3Digite a terceira nota 3rea! notaM

    A &ari &el me!ia er utiliza!a para utilizar eu conte@!ona e trutura !e !eci )o. O programa c # utiliza!o como umacalcula!ora matem tica on!e o &alor !a &ari &el # canaliza!opelo pipe f para o c e em egui!a para o coman!o cut.O cut recorta uma in$orma()o *ue ne te ca o # um caracterecom o par%metro c *ue pega apena o primeiro para er $eito

    o te te con!icional i$ *ue e te n)o aceita &alore !ecimaime!iaZ[ ec5o 3 caleZ2B [nota1 [nota2 [notaM /M3 f c l f cut c1

    m$ # a m#!ia $inal com o c lculo com a !ua ca a !ecimai comopropo to no algoritmo

    m$Z[ ec5o 3 caleZ2B [nota1 [nota2 [notaM /M3 f c l

    i$ [me!ia ge R 7B t5en

    ec5o 3O aluno [nome e t apro&a!oY #!ia $inal: [m$3 el e

    13

  • 8/17/2019 Algoritmos em Shell Script.doc

    14/26

    ec5o 3O aluno [nome e t repro&a!o. #!ia Cinal: [m$3$i

    ,ma outra e trutura !e ele()o" # oca e. A ua utiliza()o # muito @til *uan!o tra al5amo com m@ltiplae col5a " como menu . o e emplo a ai o" e a compreen )o $icar mai $ cil !e enten!er.

    8 trutura !o coman!oca e:

    ca e [&ar in pa!rao1 cm!1 cm!2 cm!n BB pa!rao2 cm!1 cm!2 cm!n BB pa!raon cm!1 cm!2 cm!n BB e ac

    Algoritmo 00_ M7:

    Y/ in/ a 5Autor: 9666Data: 1M/0R/201MAlgoritmo *ue *uan!o e ecuta!o in$orma a eguinte au!a( e : ;om !ia" ;oa tar!e ou ;oa noite.Al#m !i o" in$ormar a au!a()o unto com o nome !o u u rio

    O coman!o !ate $oi $ormata!o !e tal $orma a$im !e pegar a pena a 5ora e n)o o minuto. 8 .: Supon5a *e a 0 :M0" com o coman!o a ai o" ' er o ti!o o 0

    5oraZ[ !ate bd

    8nten!en!o a con!i( e para a au!a()o:0` f 1 017 Signi$ica zero egui!o !e *ual*uer coi a ` " ou f um egui!o !e zero ou um 017

    e ta lin5a pegou 01" 02" ... 0_" 10 e 11B1 2 R7 Signi$ica um egui!o !a li ta !e !oi a ete" ou e a" e ta lin5a pegou 12" 1M" ... 1RBN Signi$ica tu!o *ue n)o ca ou com nen5um !o pa!r e anteriore .

    ca e [5ora in 0` f 1 017 ec5o 3;om Dia [,S8I3 BB 1 2 R7 ec5o 3;oa ar!e [,S8I3 BB N ec5o 3;oa oite [,S8I3 BBe ace it

    Algoritmo 010:

    14

  • 8/17/2019 Algoritmos em Shell Script.doc

    15/26

    Y/ in/ a 5Autor: 9666Data: 14/01/2014Algoritmo *ue !i poni ilize uma li ta !e e col5a para o u u rio po!er procurar" in talar ou remo&er um pacote !e o$tware para o i tema De ian

    ec5o 38 col5a uma !a op( e a ai o: 3ec5o 3 1 rocurar um pacote 3ec5o 3 2 Vn talar um pacote 3ec5o 3 M Iemo&er um pacote 3rea! op

    ?ogo a ai o )o apre enta!o o coman!o para realizar a tare$a !e procurar" in talar e remo&er pno i tema ?inu De ian

    ca e [op in 1 ec5o n 3Vn$orme o nome !o pacote: 3 rea! p9g apt cac5e earc5 [p9g BB 2 ec5o n 3Vn$orme o nome !o pacote: 3 rea! p9g apt get in tall [p9g BB M ec5o n 3Vn$orme o nome !o pacote: 3 rea! p9g apt get remo&e [p9g BB N ec5o 3Op()o Vn& li!a3e ace it

    Algoritmo 010.1:

    Y/ in/ a 5Autor: 9666Data: 14/01/2014Algoritmo *ue !i poni ilize uma li ta !e e col5a para o u u rio po!er procurar" in talar ou remo&er um pacote !e o$tware para o i tema Ie! dat

    ec5o 38 col5a uma !a op( e a ai o: 3ec5o 3 1 rocurar um pacote 3ec5o 3 2 Vn talar um pacote 3ec5o 3 M Iemo&er um pacote 3rea! op

    ?ogo a ai o )o apre enta!o o coman!o para realizar a tare$a !e procurar" in talar e remo&er pno i tema ?inu Ie! dat

    ca e [op in

    15

    https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/

  • 8/17/2019 Algoritmos em Shell Script.doc

    16/26

    1 ec5o n 3Vn$orme o nome !o pacote: 3 rea! p9g Jum earc5 [p9g BB 2 ec5o n 3Vn$orme o nome !o pacote: 3

    rea! p9g Jum in tall [p9g BB M ec5o n 3Vn$orme o nome !o pacote: 3 rea! p9g Jum remo&e [p9g BB N ec5o 3Op()o Vn& li!a3e ace it

    #strutura de repetição

    At# agora" criamo algoritmo *ue t-m ua e ecu()o apena uma &ez. ara uma no&a e ecu()o" # precacionar o cript. a " e e $o e preci o calcular uma m#!ia para 0 aluno ` Algo a tante tra al5o oac5am`Y

    en an!o ni o" o S5ell" como em outra linguagen !e programa()o" !i p e !a e truturaw5ile en*uantoe $or para .

    O w5ile $az um te te no in+cio !o algoritmo para !ar continui!a!e" ou n)o" L e ecu()o !o c'!igo. K no ca!o $or " # in$orma!o um &alor pr# !e$ini!o !e *uanta &eze 5a&er a repeti()o !o c'!igo.

    anto na e truturaw5ile *uanto no$or " teremo o elemento incrementa!or ou conta!or. A $un()o !e te" #$azer um incremento a ca!a itera()o !o c'!igo.

    8 te n@mero # inteiro e po!e ter itera( e !e 2 em 2" entre outra me!iante a $un()o !o algoritmo. 8 teincremento a emel5a e a um ponteiro !e rel'gio" on!e a ca!a egun!o # incrementa!o 1" at# completar60 egun!o complementan!o um minuto" !an!o a &ez ao pr' imo ponteiro.

    A ai o" algun algoritmo com e a !ua e trutura :

    Algoritmo 011:

    Y/ in/ a 5Autor: 9666Data: 1 /01/2014Algoritmo *ue calcula a m#!ia anual !e uma turma com aluno

    Vnician!o a &ari &el conta!or con po!e er o nome *ue ac5ar mel5or

    16

  • 8/17/2019 Algoritmos em Shell Script.doc

    17/26

    e a &ari &el utiliza!a para acumular acm a m#!ia para *ue no $inale a calcula!o a m#!ia !a turma.

    conZ1acmZ0

    A m#!ia anual er armazena!a na &ari &el ma

    Ha o $or !igitar um m#!ia com ca a !ecimai "utilizar o ponto ao in !a &+rgula. 8 : 2.4

    w5ile [con lt 6 7!o

    ec5o n 3Digite a m#!ia anual !o [con aluno: 3 rea! ma

    o c lculo !a &ari &el acm e tou utilizan!o a cra e ]] paraatri uir o &alor !o c lculo a e ta. ,ma outra $orma !e atri ui()o

    acmZ]ec5o 3 caleZ2B[acm [ma3 f c] conZ[ [con 1

    !one

    Halculo !a m#!ia anual !a turma mat . 8 tou utilizan!o o coman!ocale unto com a calcula!ora c para o ter re ulta!o !e &alor

    !ecimal e peci$ican!o !ua ca a !ecimai ou *uanta &oc- !e e ar

    matZ[ ec5o 3 caleZ2B[acm/ 3 f c l

    ec5o 3 #!ia anual !a turma [mat3

    Algoritmo 012:

    Y/ in/ a 5Autor: 9666Data: 1 /01/2014Algoritmo *ue e ecuta te te !e ping para um range !e V e ao$inal mo tra a *uanti!a!e total !e 5o t .

    ec5o 3 3ec5o 3 A?=OIV O 8S AI V 3ec5o 3 3ec5o

    Vnician!o a &ari &el conta!or con

    conZ0

    17

  • 8/17/2019 Algoritmos em Shell Script.doc

    18/26

    A*ui !e&e er in$orma!o a re!e. 8 .: 1_2.16 .1 ou 1_2.16 .2 e a im por !ianteec5o n 3Vn$orme a re!e: 3rea! net

    Vn$orme o V inicial !o te te

    ec5o n 3Vn$orme o V inicial: 3rea! ipini

    Vn$orme o V $inal !o te teec5o n 3Vn$orme o V $inal: 3rea! ip$im

    H lculo !e *uanto V rece eram o te te !e pingtam #m er u a!o para $azer uma compara()o com o conta!or na e trutura !e repeti()o

    calcZ[ [ip$im ipini

    O primeiro te te !a e trutura w5ile &ai er com o primeiroV in$orma!o pelo u u rio. A im *ue o la(o come(ar a er e ecuta!o" e te V inicial er oman!o com o conta!or at# atingir o total !e 5o t *ue !e&e er 3pinga!o3

    te tZ3[ipini3

    w5ile [con le [calc 7!o

    A*ui o coman!o ping e ecutar um te te em ca!a 5o t com aop()o c1 e er uni!a a &i &el [net e [te t on!e e ta @ltimacont-m o V !entro !o range a er te ta!o

    ec5o ]ping c1 [net.[te t]

    conZ[ [con 1 te tZ[ [ipini [con

    !one

    leep 2clear ec5o 3 3ec5o 3 CV DOS 8S 8S 3ec5o 3 3ec5oec5o 3 > otal !e V te ta!o : [con3

    Algoritmo 01M:

    Y/ in/ a 5

    Autor: 9666Data: 1R/01/2014

    18

  • 8/17/2019 Algoritmos em Shell Script.doc

    19/26

    Algoritmo *ue imprime a ta ua!a !e cinco

    A*ui # atri uir o nome a &ari &el conta!or !e i e n)o!e con como $iz em outro e emplo . Qoc- po!e atri uir o nome *ue !e e ar contanto *ue ai a a $inali!a!e !e te

    iZ0ara e te e emplo e tou utilizan!o a ta ua!a !e " por#m" ca o

    nece ite u ar um outro &alor" a ta u tituir o

    w5ile [i le 10 7!o

    A*ui &ai o c lculo !a multiplica()o. Uuan!o i $or 0" ent)o ermultiplica!o por e a im uce i&amente at# *ue o conta!or i

    e a 10 e $inalize a e ecu()o !o la(o.calcZ[ [iN

    ec5o 3[i j Z [calc3 iZ[ i 1

    !one

    Algoritmo 014:

    Y/ in/ a 5Autor: 9666Data: 1R/01/2014Algoritmo *ue calcula o $atorial !e umn@mero $orneci!o pelo u u rioO $atorial # calcula!o !a eguinte $orma:$atorial !e M: M 2 1 Z 6$atorial !e 4: 4 M 2 1 Z 24

    ec5o 3Digite o n@mero *ue *ueria a er o $atorial: 3rea! num

    Vnician!o a &ari &el $atorial $at$atZ1

    O conta!or i inicia com o n@mero 1 e o loop ere ecuta!o me!iante eu &alor er menor igual ao &alor !a &ari &el [num

    $or iZ1B i

  • 8/17/2019 Algoritmos em Shell Script.doc

    20/26

    $atZ[ [$atN[i

    !one

    ec5o 3O $atorial !e [num #: [$at 3

    Algoritmo 01 :

    Y/ in/ a 5Autor: 9666Data: 1R/01/2014Algoritmo *ue imule uma contagem regre i&a !e 10 minuto " ou e a"mo tre 10:00" e ent)o _: _" _: " ..." _:00" : _ at# 0:00

    Ser&e apena para e i ir a contagem er inicia!a em 10:00ec5o 310:003

    Qari &el min minuto e eg egun!oO primeiro $or er utiliza!o para contar o minuto min

    $or minZ_B min>Z0B min!o

    O primeiro $or er utiliza!o para contar o egun!o eg8 te $or igni$ica *ue o minuto ' mu!ar *uan!o o loop !o egun!oc5egar ao eu $im. anto na &ari &el min *uanto eg &ai !ecrementar

    min e eg " ou e a" !iminuir !e 1 em 1

    $or egZ _B eg>Z0B eg !o

    erce a *ue entre a &ari &el [min e [ eg tem : !oi ponto para$azer a epara()o !e minuto e egun!o

    ec5o 3[min:[ eg3 !one!one

    $unç%es

    Hon unto !e coman!o agrupa!o em um loco" *ue rece e um nome e atra !e te" po!e er ati&a!o

    or *ue utilizar $un( e `•

    ara permitir o reapro&eitamento !e c'!igo con tru+!o por &oc- ou por outro programa!ore• ara e&itar *ue um trec5o !e c'!igo *ue e a repeti!o & ria &eze !entro !e um me mo program

    20

  • 8/17/2019 Algoritmos em Shell Script.doc

    21/26

    • ara permitir a altera()o !e um trec5o !e c'!igo !e uma $orma mai r pi!a. Hom o u o !e uma$un()o # preci o alterar apena !entro !a $un()o *ue e !e e aB

    • ara *ue o loco !o programa n)o $i*uem gran!e !emai e" por con e*u-ncia" mai !i$+cei enten!erB

    • ara $acilitar a leitura !o programa $onte !e uma $orma mai $ cilB• ara eparar o programa em parte loco *ue po am er logicamente compreen!i!o !e $or

    i ola!a. 47

    A e trutura ica !e uma $un()o em S5ell Script" #:

    $uncao T

    X

    8 a c5ama!a $eita no c'!igo" # !igitan!o o nome !a me ma:

    &uncao

    Dentro !e um cript. Declare primeiro a $un( e " ao in !e $azer i o no $inal" ca o contr rio" irapre entar erro .

    Algun e emplo !e $un( e :

    Algoritmo 016:

    Y/ in/ a 5Autor: 9666Data: 21/01/201MAlgoritmo *ue calcula a raiz *ua!ra!aO c lculo trata e !e n@mero e ato por e emplo: raiz *ua!ra!a!e 4 # 2: 16 # 4. O S5ell" por i '" n)o calcula &alore!e ponto $lutuante a n)o er *ue 5a a intera()o com a calcula!ora

    c como &i to em outro algoritmo

    raizT

    ec5o 3Digite um n@mero: 3rea! num

    Vnician!o o conta!or com 1 poi n)o e i te !i&i )o por zeroiZ1

    w5ile [i lt [num 7!o

    21

  • 8/17/2019 Algoritmos em Shell Script.doc

    22/26

    Qari &el calc igni$ica c lculo e calc2" c lculo2A &ari &el calc $ar a !i&i )o !o n@mero pa a!o pelou u rio e o conta!or. 8m egui!a e te &alor er multiplica!opor ele me mo na &ari &el calc2.

    calcZ[ [num / [i calc2Z[ [calc N [calc

    A*ui # realiza!o o te te *ue ca o e a &er!a!eiro acon!i()o [calc2 $or igual a [num" 5a&er uma interrup()ono loop com o coman!o rea9 e er mo tra!o o coman!oec5o logo a ai o

    i$ [calc2 e* [num 7 t5en rea9 $i iZ[ [i 1!one

    ec5o 3A raiz *ua!ra!a !e [num #: [calc3

    X

    raiz

    Algoritmo 01R:

    Y/ in/ a 5Autor: 9666Data: 2R/01/201MAlgoritmo utiliza!o para criar" alterar e apagar conta !e u u rio !o i tema?inu

    menuT

    ec5o hhhhhhhhhhhhhhhhhhhhhhhhhhhhh ec5oec5o HADAS IAI ,S,kIVOS O SVS 8 Aec5o hhhhhhhhhhhhhhhhhhhhhhhhhhhhh ec5oec5oec5o 3 1 Ha!a trar 3

    ec5o 3 2 rocurar 3ec5o 3 M Apagar 3

    22

    https://www.vivaolinux.com.br/linux/https://www.vivaolinux.com.br/linux/

  • 8/17/2019 Algoritmos em Shell Script.doc

    23/26

    ec5o 3 0 Sair 3

    ec5o 38 col5a uma !a op( e acima: 3rea! op

    ca e [op in 1 ca!a trar BB 2 procurar BB M apagar BB 0 e it BB N Op()o in& li!a BBe ac

    X

    ca!a trarT

    ec5o n 3 ome completo: 3rea! nome

    ec5o n 3Vn$orme o nome para ?ogin: 3rea! login

    ec5o n 3Hargo: 3rea! cargo

    Homan!o para criar conta no ?inu

    u era!! ! /5ome/[login m c 3[nome [cargo3 / in/ a 5 [login

    pa w! [login

    ?impa a tela e &olta ao menu principal

    clear

    menu

    X

    procurarT

    ec5o n 3Vn$orme o login !o u u rio: 3rea! login

    cat /etc/pa w! f grep i [login

    23

  • 8/17/2019 Algoritmos em Shell Script.doc

    24/26

    leep 4clear

    menu

    XapagarT

    ec5o n 3Vn$orme o login !o u u rio: 3rea! login

    ec5o n 3Apagar o !iret'rio /5ome !o u u rio` ou n 3rea! op

    i$ [op Z 3 3 7 t5en u er!el r [login el e u er!el [login $i

    leep Mclear

    menu

    X

    H5aman!o a $un()o

    menu

    Vetor 'arra()

    A &ari &ei !e am iente po!em er comarraJ " po i ilitan!o a in er()o !e & rio &alore !entro !e umame ma &ari &el. Outro nome !a!o aoarraJ" em l'gica !e programa()o" # &etor.

    Ha!a &alor # re$erencia!o em um +n!ice repre entan!o uma po i()o re er&a!a na mem'ria.

    O +n!ice !e um &etor" tam #m # c5ama!o !e c5a&e. F atra !ele *ue temo ace o a !etermina!a po i( e !o &etor para realizarmo a tare$a !e atri ui()o e con ulta.

    8 trutura:

    24

  • 8/17/2019 Algoritmos em Shell Script.doc

    25/26

    &aria&elZ &alor1 &alor2 &alorM ...

    ara ace ar um elemento no &etor arraJ " u e eu n@mero !e +n!ice entre colc5ete " contan!o a zero to!o con unto entre c5a&e .

    8 .: ace an!o o &alor *ue e t na po i()o zero !o &etor:ec5o [T&aria&el 07X

    ara mo trar to!o o conte@!o !o arraJ" u e o a teri co no lugar no +n!ice:

    ec5o [T&aria&el N7X

    Algoritmo 01 :

    Y/ in/ a 5

    Autor: 9666Data: 1R/01/2014Algoritmo *ue e ecuta te te !e conecti&i!a!e com um li ta !e 5o t

    Declaran!o a &ari &el *ue ir armazenar o ite a erem te ta!o

    5o t Z www.google.com. r www.&i&aolinu .com. r www.uol.com. r

    8 ecuta o coman!o ping com o en&io !e apena 1 pacote ao primeiro5o t armazena!o no &etor

    ping c1 [T5o t 07XAp' tr- egun!o " a tela er limpa e te ta!o o pr' imo ite

    leep Mclear

    ping c1 [T5o t 17X

    leep Mclear

    ping c1 [T5o t 27X

    A im" $inalizo e te artigo. rocure ai ar li ta !e e erc+cio !e algoritmo e tente aplic lo em S5

    ;on e tu!o Y

    *i+liogra&ia

    25

  • 8/17/2019 Algoritmos em Shell Script.doc

    26/26

    • HOS A" Daniel =ou&eia. A!mini tra()o !e Ie!e com Script . 1 8!i()o. Iio !e Kaneiro" 8!itora;ra port" 200R.

    • COI;8?O 8" An!r# ?uiz Qillar E 8;8IS AHd8I" denri Cre!erico.?'gica !e rograma()o Acon tru()o !e Algoritmo e 8 trutura !e Da!o . M 8!i()o. S)o aulo" 8!itora er on" 200 .

    KAI=AS" Aur#lio arin5o. S5ell Script ro$i ional. 1 8!i()o. S)o aulo" 8!itora o&atec" 201

    ,e&er-ncias• 17 COI;8?O 8" An!r# ?uiz Qillar E 8;8IS AHd8I" denri Cre!erico.?'gica !e rograma()o A

    con tru()o !e Algoritmo e 8 trutura !e Da!o . M 8!i()o. g. 14.

    • 27 8Q8S" K@lio Hezar. Hur o !e S5ell Script.?inu agazine Online. ltimo Ace o em un/201M.

    • M7 8 te algoritmo $oi uma a!apta()o encontra!a no ite: apo !e ;ote*uim VQ rograma()o S5ell?inu . ltimo ace o em an/2014.

    • 47 V dO" rcio Sarroglia., o !e Cun( e em H. ltimo ace o em an/2014.

    http://www.linuxmagazine.com.br/lm/noticia/baixe_o_curso_de_shell_script_do_julio_cezar_neveshttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://www.inf.pucrs.br/~pinho/LaproI/Funcoes/AulaDeFuncoes.htmhttp://www.inf.pucrs.br/~pinho/LaproI/Funcoes/AulaDeFuncoes.htmhttp://www.linuxmagazine.com.br/lm/noticia/baixe_o_curso_de_shell_script_do_julio_cezar_neveshttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://apoie.org/JulioNeves/PapoIV.htm#Acaso_Casa_com_casehttp://www.inf.pucrs.br/~pinho/LaproI/Funcoes/AulaDeFuncoes.htm