Sunteți pe pagina 1din 12

Laborator11Shellscripting3

Suportlaborator
12.Shellscripting[http://books.google.com/books?id=_JFGzyRxQGcC&pg=PA365] PuteiurmritutorialulvideocorespunztorlaboratoruluifcutdeITAssistant
[http://itassistant.org/diverse/utilizareasistemelordeoperare/utilizareasistemelordeoperare10.html].

Cheatsheet
Comand Descrierescurt

s e d a w k

prelucrareaunuifluxdedate prelucrareaunorfiieretext

Arhivlaborator
lab11.tar.gz

Introducere
bashfunctions
AacumntrunprogramCputemfolosifunciipentruafaceprogramulmailizibilputemfaceacelailucruin Bash. OfuncieBashnuestealtcevadectoconstruciedeforma
n u m e _ f u n c t i e( ) { c o d _ f u n c t i e }

Valoareantoarsdefuncieeste$ ? ,parametriitransmiifuncieisunt$ @ ,nnumrde$ # ,exactcantrunscript bashoarecare.

Variabiledemediu
Variabileledemediusuntunsetdevariabilecareafecteazmodulncareunprogramruleaz.ngeneral,unproces motenetevariabileledemediualeprocesuluiprinte.Astfel,pentruprocesulasociatrulriiuneicomenzi,sunt motenitevariabileleshellului. Pentruavedeavariablieledemediudefinite,putemfolosicomandae n v frniciunparametru.
s t u d e n t @ u s o : ~ $e n v

Pentruadefiniovariabildemediufolosim:
s t u d e n t @ u s o : ~ $e x p o r tV A R I A B L E = v a l u e

Dacnufolosime x p o r t variablianuvafimotenitdeproceselecopii. Variablieledemediusescriunmodobinuitculiteremari.Exempledevariabiledemediu:

P A T H olistdedirectoarefolositedeshellpentruagsiexecutabilulasociatcomenzii.Directoarelesunt separateprin: . H O M E directorulh o m e alutilizatoruluicurent. U S E R utilizatorulcurent O L D P W D caleadirectoruluianterior E D I T O R editorulimplicit.

FunciivsaliasvsscriptnPATH
OaltmodalitatedeaextindeBashestesfolosimaliasuri.nfiierul. b a s h r c aveictevaaliasuridefinite,le puteilistautilizndcomandaa l i a s . Una l i a s sedefinetetotutilizndcomandaa l i a s .
s t u d e n t @ u s o : ~ $a l i a sm y _ p w d = ' e c h o" " ;p w d ;e c h o" " '

Pentruasalvaunaliaslvomscrien. b a s h r c . Cumalegemcefolosim? Folosimscripturidacscopullorestelocaldirectoruluincareledefinimproiectuluincarelefolosim.Dacvrem sfolosimscripturioriundensistemvatrebuisleadugmlaP A T H sauslefolosimmereucucaleaabsolut sauslecopiemntrundirectordejaaflatnP A T H .Ultimaalternativvacauzaproblemelareinstalareasistemului deoperare. Pentrucomenzilecompusedesfolositeserecomandfolosireaunuialiassauauneifuncii,ambelesalvaten . b a s h r c .Folosimaliascndargumentelepotrmnenespecificatencomand(deexemplua l i a s l l = ' l sl 'functioneazdeoarececaleadelistatvafimereulafinal).nrest,folosimfuncii.Deexemplun cazulncarevremcanmomentulncareajungemntrundirectorsseafiezedirectorulcurent,comandaarfic d $ d i r ;p w d inumaiputemfolosiunalias.Soluiaestesdefinimofuncie:
m y _ c d ( ) { c d$ 1 p w d }

regex
Expresiileregulatesuntometoddeadefiniunirdupcarefacemocutare. Oexpresieregulatpoatefiformardintrunsimplucaractersauir.Atuncicndcutmutilizndg r e p ,noi scriem,deobicei,oexpresieregulat.

s t u d e n t @ u s o : ~ $l s|g r e p' a ' D o w n l o a d s s t a r c r a f t T e m p l a t e s

Expresiileregulateneoferposibilitateadeaspecificaolistdecaracterecarearputeaexistafolosind [ c h a r a c t e r s ] .
s t u d e n t @ u s o : ~ $l s|g r e p' [ a b ] ' [ . . . ]

Putemdaunintervaldecaractereutiliznd.Pentruoricecaracteralfanumeric,folosim:
' [ a z A Z 0 9 ] '

Deasemenea,avemposibilataeadeaspecificao r i c e
s t u d e n t @ u s o : ~ $l s|g r e p' . ' [ . . . ]

c a r a c t e r utilizndcaractreulpunct:.

Expresiademaisusvafacem a t c h peoricefiier/directorcarearecelpuinuncaracterndenumire. Pentruaputeadefiniirurilecarencepcucevafolosima n c o r a ^ caredefinetenceputulirului.Asemntor, pentrufinal,utilizm$ .


s t u d e n t @ u s o : ~ $c a t*|g r e p' ^ a . * b $ '

Expresiademaisussepotrivetecuoriceircarencepecua isetermincub .Pentru* ,vedeimaijos. ncontextulactual,caracterul* nespunecocricecaractercareseaflnaintesepoaterepetadeoricteori (incluzndniciodat).Acestaestemotivulpentrucare. * facematchpeorice( o r i c ec a r a c t e rd e o r i c t eo r i ) .Pentruadefiniunircareareorictecaracteredea lanceputulirului,scriem:
' ^ a * '

case
Construciac a s e esteasemntoareluis w i t c h dinC/C++nBash,fiindoprescurtarepentrumaimulte construciiif/then/else.Totuivaloarea,asociatunuibloc,cucaresecomparoutputulexpresieipoatefinunumai unnumr,daritextsauoexpresieregulat.
c a s ee x p r e s i ei n a b l o n 1) b l o c 1; ; a b l o n 2) b l o c 2; ; . . . e s a c

Spresupunemcavemunscriptcareprimetecaparametruuncuvnt,iafieazunmesaj:
c a s e$ 1i n a * )e c h o' A mg s i tu nc u v n dc a r e n c e p ec u" a " ' ; ;

b ? )e c h o' A mg s i tu nc u v n td i nd o u l i t e r e , ip r i m ae s t e" b " ' ; ; c [ d e ] )e c h o' A mg s i tu n" c d "s a u" c e " ' ; ; a | e | i | o | u)e c h o' A mg s i tov o c a l ' ; ; *) e c h o' N ua mg s i tn i c iop o t r i v i r e ' e s a c

Urmtoriipaisuntexecutaincazulconstrucieic a s e : Primadatesteexpandatexpresiadinc a s e isencearcopotrivirepentrufiecareablon. Cndsegseteopotrivire,toatecomenzileasociateaceluiablon,pnala; ; ,suntexecutate. Dupprimapotrivire,seiesedincasecuvaloareexitalultimeicomenziexecutate. Dacnuexistniciopotrivire,valoareaexitalluicaseeste0. Sintaxaexpresiilorregulateacceptatdeconstruciacasenuesteidenticcuceaacceptatdegrep. Observaiultimulablondinexemplu,*),cereprezintorice,fiindechivalentcuoramurdefault.

sed
s e d esteunutilitarcepermitetransformareaanumitorsecvenedetext.Acestacitetefiiereledeintrareliniecu
linie,apoimodificfiecareliniecorespunztorregulilorspecificatentrunlimbajsimplu,iafieazlinia.Se evideniazfadeuneditordetext(ex.vim)prinfaptulcpoateaplicaaceletransformripeunfluxdedate,de exempludintrunpipe. Sintaxaderulareeste:
s e dc o m e n z if i i e r _ i n t r a r e

Sintaxauneicomenzisedsedeste:
[ a d r e s a ] [ f u n c t i e ] [ a r g u m e n t e ]

Ceamaifolositfunctieautilitaruluiesteceadesubstituire,s ,necesitnddouargumente,iruldenlocuiticel nlocuitor.


s e ds / s i r _ d e _ i n l o c u i t / s i r _ i n l o c u i t o r / o p t i u n i

Ctevaopiuniacceptate:

g (global)nlocuietetoateapariiileiruluidenlocuit,nudoarprima p (print)afieazlinialaieirefolosit,deobocei,nconjunciecuopiunean pentrus e d w (write)scrieliniantrunfiierprimitcaparametru


Urmtorulexempluaratcumputememulautilitarulc u t folosinds e d ,pentruaextragedoarnumeleutilizatorilor dinfiierul/ e t c / p a s s w d :
s e d' s / \ ( [ ^ : ] * \ ) . * / \ 1 / '/ e t c / p a s s w d

Explicaie: Folosimconstrucia\ ( r e g e x \ ) pentruastocavaloareaexpresieiregulate. Pentruaputeafolosivaloareastocat,folosim\ 1 pentruprimaconstrucie\ ( r e g e x \ ) ntlnit,\ 2 pentruadoua,etc.

Prinexprsia\ ( [ ^ : ] * \ ) . * sefacepotrivirepetoatlinia,nstotceelanceputulliniei,pnlaprimul caracterdedelimitarentlnit,':',sereinen\ 1 .

awk
a w k esteunutilitar,dariunlimbajdeprogramare,folositpentruprelucrareafiierelortext.Unfiierestetratatcao
succesiunedenregistrrirecords.Implicitnregistrrilesuntdelimitateprincaracterulnewline('\n'),onregistrare reprezentndolinie(recordseparator). Fiecarenregistrareestempritntrosuccesiunedecmpuri(f i e l d s ),delimitateimplicitprincaracterulspaiu ''(fieldseparator).Astfel,primulcuvntdepeolinieputemspunemcesteprimulcmp,aldoileacuvntesteal doileacmpetc. Unprogramawkreprezintosuccesiunedeperechiablonaciune:
c o n d i i e{a c i u n e}

a w k preiadelaintrarecteolinie,cutndopotrivirepentrufiecareablondinprogram.Pentrufiecarepotrivire,
aciuneaasociataceluiablonesteexecutat. Pentruarulaa w k ,putemfolosiurmtoareledoumoduri: Precizminstruciunilepecaresleexecuteawkcaparametru:
a w k[ o p i u n i ]' i n s t r u c i u n i '[ f i i e r e _ i n t r a r e ]

Artmncontinuarecumamputeaextragenumeleutilizatorilordin/ e t c / p a s s w d :
a w kF' : '' { p r i n t$ 1 } '/ e t c / p a s s w d

Explicaii: Deoarecedelimitatorulimplicitpentrucmpurifolositestecaracterulspaiu,trebuieslschimbmn caracterul':',folosindopiuneaF .Maimult,putemchiarprecizacadelimitatorpentrucmpurioexpresie regulat. Pentruareferiuncmpdintronregistrare(ncazulnostruolinie),folosimconstrucia$1pentruprimul cmp,$2pentrualdoilea,etc.Reineicprin$0obinemtoatlinia. Pentruaafialaieirefolosimfunciap r i n t f ,asemntoarecufunciadinC. Observaicnuamprecizatunablon,doaroaciune.Dacnuesteprecizatunablonawkfacematchpe oricelinie. Scrieminstruciunilentrunfiierispunemlarulareslepreiadinfiier:
a w k[ o p i u n i ]ff i i e r _ c u _ i n s t r u c i u n i . a w k[ f i i e r e _ i n t r a r e ]

Slumunexemplumaicomplex.Vremsnumrmnumruldeutilizatoriceaucashellimplicit/ b i n / b a s h . Folosimfiierulp r o g r a m . a w k pentruareineinstruciunilea w k .


u s o @ l o c a l h o s t $c a tp r o g r a m . a w k B E G I N{c o u n t = 0 ;} $ 7~/ \ / b i n \ / b a s h /{c o u n t + + ;} E N D{p r i n t" N u m r u ld eu t i l i z a t o r ic ef o l o s e s cs h e l l u lb a s h=" , c o u n t ;}

u s o @ l o c a l h o s t $a w kF' : 'fp r o g r a m . a w k/ e t c / p a s s w d N u m r u ld eu t i l i z a t o r ic ef o l o s e s cs h e l l u lb a s h=2

Explicaii:

B E G I N iE N D permitspecificareaunoraciunicaresseexecutelanceputul,respectivsfritul
prelucrrii. Aiciavemunexempludeunablonmaicomplex.Acestaprecizeazssefacpotrivireapentruexpresia regulatdupcaracterul'~'doarpentrucmpulal7leadinnregistrare. na w k putemfolosivariabile(nuenevoiesprecizmtipullor)ioperaiiaritmetice.

Exerciii
1.Changingtheprompt
Promptulpoateficonfiguratprinmodificareavariabilelor$ P S 1 i$ P S 2 .Modificaipromptulastfelnctn momentulateptriiuneicomenziacestasfie'':?''iarpeliniileurmtoare''...''. Demonstraifuncionalitatearulndocomandpemaimulternduri. Modificareaacestorvariabileestevizibildoarnprocesulcurent. Prompttricolor:
e x p o r tP S 1 = " \ e [ 0 ; 3 1 m [ \ u \ e [ m @ \ e [ 0 ; 3 2 m \ h\ e [ m\ e [ 0 ; 3 5 m\ W ] \ $\ e [ m"

Rezolvare
$P S 1 = ' : ?' : ?P S 2 = ' . . .' : ?l s ;\ . . .p w d

2.PATH.which
Navigaindirectorul~ incercaisrulais p e c i a l _ v a r s . s h fradacaleacompletspreacesta(exactla felcumarfuncional s ).Observaicnusepoaterula(primiieroare). Adugatidirectorulncareseaflas p e c i a l _ v a r s . s h lavariabilademediu$ P A T H .
s t u d e n t @ u s o : ~ $P A T H = $ P A T H : < d i r e c t o r u l _ u n d e _ s e _ a f l a _ s p e c i a l _ v a r s . s h >

Acum,comandas p e c i a l _ v a r s . s h artrebuisfuncioneze. Pentruaaflaundesegseteocomandputemfolosiw h i c h . Aflaidincedirectorseruleazcomandap i n g .

3.Funcii

Urmriiconinutulfiieruluif c t _ e x a m p l e . s h :
# ! / b i n / b a s h f( ){ e c h o" fa p e l a t ac u "$ #" a r g u m e n t e " e c h o" P r i m u la r g u m e n te s t e$ 1 " e c h o } f1234 f2 f3 s t u d e n t @ u s o : ~ / l a b 1 1 $. / f c t _ e x a m p l e . s h fa p e l a t ac u4a r g u m e n t e P r i m u la r g u m e n te s t e1 fa p e l a t ac u1a r g u m e n t e P r i m u la r g u m e n te s t e2 fa p e l a t ac u1a r g u m e n t e P r i m u la r g u m e n te s t e3

Modificaifiierult o d o _ f c t . s h astfelnctsaveictmaipuincodrepetat.Obervaicsuntexecutate aceleaicomenzicuargumentulschimbat. Rezolvare


# ! / b i n / b a s h f( ){ l s$ 1 l sl$ 1 f i l e$ 1 / *

f/ t m p f/ e t c f/ h o m e f/ v a r f/ v a r / l o g f/ d e v f/ p r o c

4.FunciivsaliasvsscriptnPATH
Citiiparteadinintroducerecuacelaititlu. Rulatiscriptulu p d a t e _ b a s h . s h coninutulluinuesterelevantacum.Acestafaceupdaten. b a s h r c adugndctevafunciiialiasurinoi. Faceis o u r c e pe. b a s h r c duprulareau p d a t e _ b a s h . s h !! Observaicw h i c h nufuncioneazdectpeexecutabileaflatenP A T H .Pentruaaflatipuluneicomenzi, folosimt y p e . Folosiit y p e pentruavedeatipulcomenzilorintrodusen. b a s h r c iexplicaicefacefiecaredinele eventual,prinrularealor:

v i _ a l l l s _ s i z e

5.grep
Amintiivconceptuldepipe.Putemtrimiteoutputuluneicomenzictreinputulalteia:
s t u d e n t @ u s o : ~ / l a b 1 1 $l sl R|g r e po v e r r w r r -1s t u d e n ts t u d e n t02 0 1 0 0 8 1 71 5 : 3 8o v e r l o r d r w r r -1s t u d e n ts t u d e n t02 0 1 0 0 8 1 71 5 : 3 8o v e r s e e r

[warmup]Afiailiniiledinfiierull o l _ h e r o e s careconincuvntula s s a s s i n . Rezolvare


s t u d e n t @ u s o : ~ $c a tl o l _ h e r o e s|g r e pa s s a s s i n

Afiaitoateliniiledinfiierull o l _ h e r o s carenuconincuvntula s s a s s i n utilizndg r e p . Rezolvare


s t u d e n t @ u s o : ~ $c a tl o l _ h e r o e s|g r e pva s s a s s i n

Cutaic a s e i n s e n s i t i v e irulstarcraftnfiieruls t a r c r a f t . t x t . Rezolvare


s t u d e n t @ u s o : ~ $g r e pit h es t a r c r a f t . t x t

sau
s t u d e n t @ u s o : ~ $c a ts t a r c r a f t . t x t|g r e pit h e

Numraidecteoriaparecuvntulthenfiieruls t a r t c r a f t . t x t frsineicontdecapitalizare (c a s e i n s e n s i t i v e ).Hint:g r e p areopiunipentruaafiadoarcuvinteleceaufcutmatchinu ntreagalinie. Rezolvare


s t u d e n t @ u s o : ~ $c a ts t a r t c r a f t . t x t|g r e piot h e|w cl 1 2

Citiinmanualcerolareparametrulc alluigrep.Decenulputemfolosipentrutaskulanterior? Rezolvare c estefolositpentruanumraliniilecarefacmatch,nuapariiilecuvntului.


s t u d e n t @ u s o : ~ $c a ts t a r c r a f t . t x t|g r e p ic " t h e " 8 s t u d e n t @ u s o : ~ $c a ts t a r c r a f t . t x t|g r e pi" t h e "|w cl 8

6.grep.Regularexpressions.
Comandag r e p folosete,pentruaspecificaabloane,unlimbajnumitregularexpressions. Folosiig r e p ifiieruls t a r c r a f t . t x t pentruagsitoateliniilecarencepcucuvntulT h e .

Caracterulcarespecificunnceputdelinieeste^ (Shift+6). Rezolvare


s t u d e n t @ u s o : ~ $c a t' ' r a n d o m _ s t u f f ' '|g r e p' ^ T h e '

Gsiiuntabelsimplucumaimultedespreexpresiiregulatelahttp://www.wellho.net/regex/grep.html [http://www.wellho.net/regex/grep.html].Atenie:dacfolosiioconstruciespecifice g r e p ,schimbaiiprogramul folositding r e p ne g r e p . Foloindfiierulr a n d o m _ s t u f f afiai: Liniilecareconincaracterula saucaracterulb . Rezolvare


s t u d e n t @ u s o : ~ $c a t' ' r a n d o m _ s t u f f ' '|g r e p' [ a b ] '

Liniilecarenuconinspaiialbe. Rezolvare
s t u d e n t @ u s o : ~ $c a t' ' r a n d o m _ s t u f f ' '|g r e pv''

Liniilecareconinosingurcifr. Rezolvare
s t u d e n t @ u s o : ~ $c a t' ' r a n d o m _ s t u f f ' '|g r e p' ^ [ 0 9 ] $ '

Liniilecareconinunnumr(orictecifre). Rezolvare
s t u d e n t @ u s o : ~ $c a t' ' r a n d o m _ s t u f f ' '|g r e p' ^ [ 0 9 ] * $ '

Folosiifiieruln u c l e a r _ l a u n c h _ c o d e s . t x t .Afiaicodurilecare: ConindoulitereZseparatedeunsingurcaracter(4liniintotal). ncepisetermincuC.(2liniintotal). Rezolvare


s t u d e n t @ u s o : ~ $g r e p' Z . Z 't e r r a n / n u c l e a r _ l a u n c h _ c o d e s . t x t [ . . . ] s t u d e n t @ u s o : ~ $g r e p' ^ C . * C $ 't e r r a n / n u c l e a r _ l a u n c h _ c o d e s . t x t [ . . . ]

7.Instruciuneacase
Directorulrandom_filesconineunsetdefiiere.Afiaiconinutulfiiereloralcrornumencepeculitera' f 'saual crornumeconinecaracterul' _ ',nordinealfabetic,ignornddiferenelentreliteremiciimari.Folosii

i n s t r u c i u n e ac a s e
Rezolvare

# ! / b i n / b a s h f o rf i l ei nr a n d o m _ f i l e s / * ;d o f i l e = $ ( e c h o$ f i l e|s e d' s / r a n d o m _ f i l e s \ / / / ' ) c a s e$ f i l ei n f * ) * _ * ) e s a c e c h o$ f i l e ; ; e c h o$ f i l e

d o n e

8.Advancedtextprocessing(sed,awk)
Fiierulheroes2coninenumeleeroilordinStarcraftnformatul
n u m ep r e n u m er a s

Modificaifiierul,folosindsed,astfelnctnumeleiprenumelesfieultimeledoucoloane. Hint:Grupaiexpresiileregulateutiliznd\(regex\).Vputeireferilaelecu\1,\2. Hint:ncadraiscriptulsedncaractere'pentruaevitainterpretareaprematuracaracterelor\saufolosiimaimulte \. Modificaidinnoufiierulpentruaajungenconfiguraiainiial,folosindawk. Rezolvare


$c a th e r o e s 2|s e d' s / \ ( [ ^] *\ ) \ ( [ ^] *\ ) \ ( [ ^] * \ ) / \ 3\ 1 \ 2 / '>h e r o e s 2 $c a th e r o e s 2|a w kF ' [] '' {p r i n t$ 2""$ 3""$ 1 } '>h e r o e s 2

9.xargs
Folositixargs+findpentruastergefisierele.tmpdinstructuradedirectoaret e m p _ f i l e s . Rezolvare
f i n dt e m p _ f i l e s /n a m e" * . t m p "t y p efp r i n t|x a r g sr mf

10.Networkstatistics
Scrietiunscriptcareprimestecaparametruointerfataderetea.Scriptulafiseazaadresaipainterfeteideretea, dacaexista.Dacainterfatanuareadresaipafiseazaunmesajcorespunzator. Modificaiscriptulastfelnctdacseprimeteargumentulpacketssevorafiainumruldepachetetrimisei recepionatedeinterfaarespectiv. Hint:Consultaifiiereledin/proc/net. Rezolvare
# ! / b i n / b a s h i f[$ #e q0] ;t h e n e c h o" U s a g e :$ 0< i n t e r f a c e _ n a m e >[ p a c k e t s ] " e x i t1 f i

#S ef o l o s e t eo u t p u t u lc o m e n z i i' i p 'p e n t r uav e d e ac ea d r e s eI Ps u n tc o n f i g u r a t e i p _ a d d r 4 = $ ( i pa d d r e s ss h o wd e v$ 1|g r e p" i n e t"|a w kF ''' { p r i n t$ 2 } ' ) i p _ a d d r 6 = $ ( i pa d d r e s ss h o wd e v$ 1|g r e p" i n e t 6"|a w kF ''' { p r i n t$ 2 } ' ) #S ea f i e a z a d r e s e l eI Ps a uu nm e s a jc o r e s p u n z t o r i f[z" $ i p _ a d d r 4 "]& &[z" $ i p _ a d d r 6 "] ;t h e n e c h o" N oI Pa d d r e s so ni n t e r f a c e$ 1 " e l s e e c h o" I P v 4 : "$ i p _ a d d r 4 e c h o" I P v 6 : "$ i p _ a d d r 6 f i e c h o #D a c a ld o i l e ap a r a m e t r ue s t e" p a c k e t s " ,s ec i t e s ci n f o r m a i i l e #c o r e s p u n t o a r ed i n/ p r o c / n e t / d e v i f[" $ 2 "= =" p a c k e t s "] ;t h e n e c h on" R e c i e v e dp a c k e t s :" c a t/ p r o c / n e t / d e v|g r e p$ 1|a w kF ''' { p r i n t$ 3 } ' e c h on" S e n tp a c k e t s :" c a t/ p r o c / n e t / d e v|g r e p$ 1|a w kF ''' { p r i n t$ 1 1 } ' f i

11.ScriptDownloader
RealizatiunscriptcareprimestecaparametruunURLsiincearcadescarcareaacestuiafolosindutilitarulw g e t . Dacaurlulestenevalid,vaafisaunmesajdeeroare. Dacafisieruldescarcatesteoarhiva(dpdvalextensiei),vaincercasaodezarhiveze.Incazulincarearhivaeste nevalida,vaafisaunmesajdeeroare. Inoricealtcaz(paginaweb,html),scriptulvalistaURLuriledescoperiteinfisieruldescarcat.Folositiexpresii regulatepentruadescoperiURLurile. FolositipentrutestareURLurile:

h t t p : / / o c w . c s . p u b . r o / c o u r s e s / _ m e d i a / u s o / l a b o r a t o a r e / l a b 1 0 . t a r . g z
[ h t t p : / / o c w . c s . p u b . r o / c o u r s e s / _ m e d i a / u s o / l a b o r a t o a r e / l a b 1 0 . t a r . g z ] h t t p : / / g o o g l e . r o / d o e s n o t e x i s t[ h t t p : / / g o o g l e . r o / d o e s n o t e x i s t ]

h t t p : / / o c w . c s . p u b . r o / c o u r s e s / u s o /
[ h t t p : / / o c w . c s . p u b . r o / c o u r s e s / u s o / ]
Rezolvare
# ! / b i n / b a s h #V e r i f i c d a c af o s tp r i m i tu np a r a m e t r u( l i n k u l ) i f[$ #e q0] ;t h e n e c h o" N o t h i n gt od o .U s a g e :$ 0< U R L > " . e x i t1 f i U R L = $ 1 #D o w n l o a d e a z c o n i n u t u ld el al i n k . w g e t$ U R L& > / d e v / n u l l #V e r i f i c d a c af o s td o w n l o a d a tc us u c c e s . i f[$ ?g t0] ;t h e n e c h o" U R Li sn o tv a l i d " e x i t2 f i #E x t r a g eu l t i m ap a r t ed i nU R L . f i l e = $ ( e c h o$ U R L|a w kF ' / '' { p r i n t$ N F } ' )

#V e r i f i c e x t e n s i a .D o a rp e n t r ut i p u r i l eu z u a l ed ea r h i v e . c a s e$ f i l ei n * . t a r . g z ) u n a r c h = " t a rx z f " ; ; * . z i p ) u n a r c h = " u n z i p$ f i l e " ; ; e s a c # n c e a r c d e z a r h i v a r e a . i f[n" $ u n a r c h "] ;t h e n $ u n a r c h$ f i l e i f[$ ?g t0] ;t h e n " S o m e t h i n gw r o n gw i t ht h ea r c h i v e " e x i t3 f i

f i

e c h o" S u c c e s s ! " e x i t0

12.ScriptImageUtility
Scrietiunscriptcareprimesteoimaginecaparametrusiafiseazainformatiidespreaceasta:tipsidimensiune (width,height). Adaugatiunparametrur/resizescriptuluicaresapermitaredimensionareaimaginiilaolatimeprimitacaparametru. FolositiutilitareleImageMagick,comandac o n v e r t (pecarevatrebuisaoinstalati) Rezolvare
# ! / b i n / b a s h i f[$ #e q0] ;t h e n e c h o" U s a g e :$ 0< i m a g e >[ r / r e s i z ew i d t h ] " e x i t1 f i #A f i e a z t i p u l id i m e n s i u n e ai m a g i n i i i d e n t i f y$ 1|a w kF ''' { p r i n t$ 2""$ 3 } ' i f[" $ 2 "= =" r "]| |[" $ 2 "= =" r e s i z e "] ;t h e n i f[z" $ 3 "] ;t h e n e c h o" A s k e df o rr e s i z e ,b u tn ow i d t hp r o v i d e d " e x i t2 f i #R e d i m e n s i o n e a z i m a g i n e a ,e s t es a l v a t at e m p o r a r na l tf i i e r i m a g e = $ ( e c h o$ 1|a w kF ' / '' { p r i n t$ N F } ' ) c o n v e r t$ 1r e s i z e$ 3 x $ 3r e s i z e _ $ i m a g e m vr e s i z e _ $ i m a g e$ 1 f i
uso/laboratoare/laborator11.txtLastmodified:2013/01/1516:56bysorina.sandu

S-ar putea să vă placă și

  • Culegere de Ghicitori PT Copii
    Culegere de Ghicitori PT Copii
    Document70 pagini
    Culegere de Ghicitori PT Copii
    riana 77
    100% (2)
  • CV Tip Simplu
    CV Tip Simplu
    Document1 pagină
    CV Tip Simplu
    AnNe MaRie
    100% (1)
  • Latex Prin Exemple
    Latex Prin Exemple
    Document212 pagini
    Latex Prin Exemple
    Denis Ibram
    Încă nu există evaluări
  • Comenzi Latex
    Comenzi Latex
    Document2 pagini
    Comenzi Latex
    mari_eu
    Încă nu există evaluări
  • Lab7 USO
    Lab7 USO
    Document12 pagini
    Lab7 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab6 USO
    Lab6 USO
    Document10 pagini
    Lab6 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 13 Handout
    Curs 13 Handout
    Document38 pagini
    Curs 13 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Lab9 USO
    Lab9 USO
    Document9 pagini
    Lab9 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab4 USO
    Lab4 USO
    Document11 pagini
    Lab4 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab 10 USO
    Lab 10 USO
    Document11 pagini
    Lab 10 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab8 USO
    Lab8 USO
    Document8 pagini
    Lab8 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab2 USO
    Lab2 USO
    Document13 pagini
    Lab2 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab1 USO
    Lab1 USO
    Document5 pagini
    Lab1 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Lab3 USO
    Lab3 USO
    Document13 pagini
    Lab3 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 04 Handout
    Curs 04 Handout
    Document43 pagini
    Curs 04 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Lab5 USO
    Lab5 USO
    Document9 pagini
    Lab5 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 11 Handout
    Curs 11 Handout
    Document37 pagini
    Curs 11 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Lab12 USO
    Lab12 USO
    Document5 pagini
    Lab12 USO
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 10 Handout
    Curs 10 Handout
    Document41 pagini
    Curs 10 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 12 Handout
    Curs 12 Handout
    Document36 pagini
    Curs 12 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 02 Handout
    Curs 02 Handout
    Document39 pagini
    Curs 02 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Curs 09 Handout
    Curs 09 Handout
    Document40 pagini
    Curs 09 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 00 USO Facultatea Politehnica Bucuresti
    Curs 00 USO Facultatea Politehnica Bucuresti
    Document26 pagini
    Curs 00 USO Facultatea Politehnica Bucuresti
    Daniela Dragan
    Încă nu există evaluări
  • Curs 05 Handout
    Curs 05 Handout
    Document37 pagini
    Curs 05 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 06 Handout
    Curs 06 Handout
    Document42 pagini
    Curs 06 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • USO Curs 07 Handout
    USO Curs 07 Handout
    Document38 pagini
    USO Curs 07 Handout
    Alexandru Grigore
    Încă nu există evaluări
  • Curs 03 Handout
    Curs 03 Handout
    Document41 pagini
    Curs 03 Handout
    Sarah Hernandez
    Încă nu există evaluări
  • Curs 08 Handout
    Curs 08 Handout
    Document36 pagini
    Curs 08 Handout
    Mihai Stanescu
    Încă nu există evaluări
  • Curs 01 Handout
    Curs 01 Handout
    Document28 pagini
    Curs 01 Handout
    Sarah Hernandez
    Încă nu există evaluări