Documente Academic
Documente Profesional
Documente Cultură
Arhivlaborator
lab10.tar.gz
Introducere
[remember]Valoareadereturnauneicomenzi
ngeneral,ocomandreturneazovaloarecareindicdacexecuiasaterminatsaunucusucces.Valoarea0 reprezintsucces,ovaloarediferitde0reprezintuncoddeeroare.Pentruaaflavaloareadereturnaultimei comenziexecutatesefolosetevariabila$ ? .
s t u d e n t @ u s o : ~ $t r u e s t u d e n t @ u s o : ~ $e c h o$ ? 0
Instruciunilecondiionaleverificvaloareadereturnauneicomenzi.
Intstruciunidecizionalesimple:if
Sintaxainstruciuniii f esteurmtoarea:
i fc o n d i i e t h e n i n t r u c i u n i e l s e a l t e _ i n s t r u c i u n i f i
f i
Dacdorimscriereat h e n peaceailiniecui f
i ft r u e ;t h e n e c h o" A d e v r a t " f i
c o n d i i e vatrebuisfolosim; .Deexemplu:
Caicondiieesteateptatocomandcareesteexecutatiiestetratatvaloareadereturn.
Comandatest
ntructinstruciuniledecizionaleverificvaloareadereturnauneicomenzi,vatrebuisfolosimocomandpentrua facediverseverificri,comparri,etc.Comandapecareoutilizmestetest.
t e s te x p r e s i o n
Pentruacomparanumereputemfolosiunadinurmtoareleopiuni: eq(equal) ne(notequal) gt(greaterthan) ge(greaterorequal) lt(lessthan) le(lessorequal) Pentruiruri, nstr(lungimealuistrestediferitde0) zstr(lungimealuistreste0) str1=str2(irurilestr1istr2suntegale) Deexemplu,pentruavedeadacvariabilaa areovaloaremaimicdect3,vomfolosi:
s t u d e n t @ u s o : ~ $a = 2 s t u d e n t @ u s o : ~ $t e s t$ al t3 s t u d e n t @ u s o : ~ $e c h o$ ? 0 s t u d e n t @ u s o : ~ $t e s t$ al t1 s t u d e n t @ u s o : ~ $e c h o$ ? 1
nacelaiscopputemfolosiivarianta[].
s t u d e n t @ u s o : ~ $w h i c h[ / u s r / b i n / [
0 s t u d e n t @ u s o : ~ $[$ al t1] s t u d e n t @ u s o : ~ $e c h o$ ? 1
Pentruolistmaidetaliataparametrilorcomenziitest,vedeiwikipedia[http://en.wikipedia.org/wiki/Test_(Unix)]sau paginademanual.
Instruciuneawhile
Sintaxacomenziiwhileesteurmtoarea:
w h i l ec o n d i t i o n d o c o m m a n d 1 c o m m a n d 2 c o m m a n d 3 d o n e
Caiinstruciuneai f ,whileexecutcomandaprimitcaicondiieiitrateazvaloareadereturn.
Instruciuneafor
f o rV A R I A B L Ei n12345. .N d o c o m m a n d 1 c o m m a n d 2 c o m m a n d K d o n e
Instruciuneaf o r areiovariantasemntoarecuceadinlimbajulC :
f o r( (E X P 1 ;E X P 2 ;E X P 3) ) d o c o m m a n d 1 c o m m a n d 2 c o m m a n d 3 d o n e
Exerciii
0.Descrcareaarhiveilaboratorului
Descrcaiarhivadelaborator.Dezarhivaiofolosindtar. Rezolvare
t a rx fl a b 1 0 . t a r . g z
1.Instruciunidecizionalesimple
Tastaintrunterminal
Comandat r u e seevalueazntodeaunalaadevrat,decisevorexecutaaciuniledeperamurat h e n . Observaictrebuiesncheiaistructurai f cuf i . Folosiisgeatsuspentruarevenilacomandaanterioar.Observaicumsuntsecveniateinstruciunile. Modificait r u e nf a l s e pentruaexecutainstruciuneadeperamurae l s e . Scrieiunscriptnumitd e c i s i o n s . s h careprimeteunsigurargumentcepoatefit r u e sauf a l s e i afieaz A d e v a r a t sau F a l s nmodcorespunztor. Hint:Folosiiparametrulprimitcaocomand,nuestenecesarcomparareaargumentuluiprimitcuirurile t r u e sau f a l s e . Rezolvare
# ! / b i n / b a s h i f$ 1 t h e ne c h o" A d e v a r a t " e l s ee c h o" F a l s " f i
2.Testareacondiiilor
Rulaiurmtoarelecomenzi
r a c e s = 3 t e s t$ r a c e sg t1& &e c h o" H u m a n sa r en o ta l o n e " t e s t$ r a c e sl e2| |e c h o" T h e r ea r eZ e r gi nt h i sG a l a x y " t e s t$ r a c e se q3 ;e c h o$ ? t e s t$ r a c e se q4 ;e c h o$ ?
Ovariantacomenziit e s t esteforma[
] ,canexempleleurmtoare:
Cerolareparametrulf ? Rescrieiprimulexempluutiliznd[
] .
3.Ifcumaimulteramuri(elif)
Inspectaiconinutulscriptuluim i n e r a l s . s h (lputeivedeaimaijos).Rulaiscriptul.
# ! / b i n / b a s h u n i t s = 1 4 i ft e s t$ u n i t sl e8 ;t h e n e c h o" O n ep y l o ni se n o u g h " e l i ft e s t$ u n i t sl e1 6 ;t h e n e c h o" N e e do n em o r ep y l o n " e l s e e c h o" N e e da d d i t i o n a lp y l o n s " f i
4.Buclewhile
RulaticomenzileurmtoarepentruadeterminanumruldepiloninecesaripentruarmataluiArtanis.Gsiiaceeai secvendecomenziinscriptulc o u n t _ p y l o n s . s h .
p y l o n s = 0 ;u n i t s = 1 8
Folosiii f pentruanuafianumerenegative.
5.Ciclurifor
Zeratuldoretesaflecteuniticontroleazncele4bazedepeShakuras.Elfolosetesecvenadecomenzide maijospecareoputeigsiinscriptulc o u n t _ u n i t s . s h .
t o t a l _ u n i t s = 0 f o ru n i t si n4321 0 ;d o t o t a l _ u n i t s = $ ( ( $ t o t a l _ u n i t s+$ u n i t s ) ) d o n e e c h o" T o t a lu n i t so nS h a k u r a s :$ t o t a l _ u n i t s "
6.Secvenedevariabilepentrufor
UrmtorulonelinernumrsecundelepnlaurmtorulraidInfestedTerransdepeMeinhoff.Observaifolosirea s e q :
f o rii n$ ( s e q2 020 ) ;d oe c h o" $ is e c o n d sr e m a i n i n g " ;s l e e p2 ;d o n e
Exempluderulare:
s t u d e n t @ u s o : ~ $. / n u m b e r _ s e q u e n c e . s h31 3 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3
Rezolvare
# ! / b i n / b a s h f o rii n$ ( s e q$ 11$ 2 ) ;d o e c h on$ i"" d o n e e c h o
7.Cstylefor
Porninddelasecvenaurmtoare,faceiastfelnctnumrtoareasnceapdela100isseafiezecteun mesajdin5n5secunde.Dacseajungesub10secunde,sevaafiacteunmesajlafiecaresecund.
f o r( ( i=1 ;i< =3 ;i + + ) ) ;d oe c h o$ i ;d o n e
Folosiii f if o r . Rezolvare
$f o r( ( i=1 0 0 ;i>1 0 ;i=5 ) ) ;d oe c h o$ i ;d o n e ;f o r( ( ;i ;i ) ) ;d oe c h o$ i ;d o n e
8.Expansionsforthewin
8.1.Urmriiefecteleurmtoarelorcomenzi:
s t u d e n t @ u s o : ~ $d u/&
ntrunaltterminal,rulai:
s t u d e n t @ u s o : ~ $p i d o fd u s t u d e n t @ u s o : ~ $p s$ ( p i d o fd u ) s t u d e n t @ u s o : ~ $p s` p i d o fd u `
N u m eb t l i e D a t P a r t i c i p a n i C t i g t o r -
(fiierulsetermincuoliniegoal) Secvenaurmtoarelisteazconinutulacestorfiierempreuncunumelelor:
s t u d e n t @ u s o : ~ $f o rf i l ei n* ;d oe c h o" > > > $ f i l e < < < " ;c a t$ f i l e ;d o n e
9.Expandingthespaces
Intraindirectorulb a t t l e s _ 2 .Afiaiconinutulfiierelordindirector,nordinealfabetic,prefixndconinutul fiecruifiierdenumeleacestuialafelcanexerciiulanterior. Rezultatulfinalaratcaurmtorul:
. . . > > M a rS a r a < < B a c k w a t e rS t a t i o n D e c e m b e r1 3 ,2 4 9 9 Z e r g ,H u m a n H u m a n . . .
10.Shellarithmetic
b a s h arefacilitideevaluareaexpresiiloraritmeticeprinintermediulconstruciei$((...)):
s t u d e n t @ u s o : ~ $e c h o$ ( ( 2+4 ) ) 6
ninteriorulconstruciei$((...))sepotgsiivariabile.
Scrieiunscriptnumito p s . s h careiadoiparametriiafieazsumalor:
s t u d e n t @ u s o : ~ $b a s ho p s . s h28 1 0
Extindeiscriptulpentrualuaunaltreileaparametru,caresdetermineoperaiadintreceledounumere:
s t u d e n t @ u s o : ~ $b a s ho p s . s h28+ 1 0 s t u d e n t @ u s o : ~ $b a s ho p s . s h286
Rezolvare
# ! / b i n / b a s h e c h o$ ( ( $ 1$ 3$ 2 ) )
Rezolvare
# ! / b i n / b a s h n = $ 1 i f[$ ( ( $ 1%2 ) )e q1] ;t h e n n = $ ( ( $ 1+1 ) ) f i e c h o$ n
11.Readingtheinput(read)
Fiierulh i s t o r y conineunistoricalluptelorTerraniiZergi.Fiecarelinieconineloculbtliei,data,participanii ictigtorul.Afiaiconinutulfiieruluisubformatulurmtor:
D a t a-W i n n e rd e f e a t e dL o s e r
. .|w h i l er e a d
e l s e l o s e r = $ p 1 f i e c h o$ d a t e $ w i n n e rd e f e a t e d$ l o s e r d o n e
12.Globbing,find
Amintiivdemecanismuldeglobbing:
s t u d e n t @ u s o : ~ $l s/ e t c / * . c o n f [ . . . ] s t u d e n t @ u s o : ~ $l sd/ e t c / b * [ . . . ]
Pentruacas:cefaceparametruld pentrul s ?Carearfiefectuldacnulamfolosi? nformaceamaisimpl,f i n d secomportsimilarcuunl s recursiv.Utilitatealuivinedinposibilitateadea specificacondiiipentrufiiereleidirectoareleafiate. Folosiidirectorull a b 1 0 pecarelaidezarhivatmaidevremepentruacestexerciiu: Afiaitoatefiiereleidirectoarelecareconinnnumeirulm a .Folosiipredicatuln a m e . Folosiighilimelenjurulpatternuluipentrualprotejadeglobbing. Cutainmanualparametrulcarefacecutarecaseinsesitive.Scopulestesaparncutareanoastri fiierulM a t t Rezolvare
$f i n dn a m e' * m a * ' [ . . . ] $f i n di n a m e' * m a * ' [ . . . ]
H o r n e r .
13.Condiiidetest
Directorulp l a n s conineosuitdefiierereprezentndplanuriledeaprareneventualitateauneiconfruntricu ZergiisauTerraniipeShakuras.Contraspionajulainseratplanurisuplimentarecevoreuasigur. Planurilecarepotfiexecutateaubitulx dinpermisiuniactivat. Scrieiunscript/onelinercareafieazdoarfiiereleexecutabiledinacestdirector. Rezolvare
f o rfi n* ;d oi f[x$ f] ;t h e ne c h o$ f ;f i ;d o n e
14.history
Szicemcamrulatcomandaw h i c hp i n g pentruavedeaexecutabilulasociatcomenziip i n g .Vrems aflmpermisiunileacestuifiierfrairescrietoatcalea,vremsrefolosimcomandaanterioar. ncercaicomenzileurmtoare:
s t u d e n t @ u s o : ~ $w h i c hp i n g s t u d e n t @ u s o : ~ $l sl$ ( ! ! ) s t u d e n t @ u s o : ~ $l sl` ! ! `
15.shift
Sepoaterealizaunscriptcuunnumrvariabildeargumentedacurmmurmtorulalgoritmsimplu:defiecaredat cndmaisuntargumenteprelucrmprimulargumentiapoileshiftmpetoateutiliznds h i f t . Realizaiunscriptcarevaafianumruldefiierefolositedeunprocessaudeolistdeprocese.Proceselesedau prinPIDurilelor.DacunnumrnureprezintunPIDdeprocescareruleazacestavafiignorat. Rezolvare
# ! / b i n / b a s h w h i l e[" $ 1 "];d o e c h o" $ 1 " i f[d/ p r o c / $ 1] ;t h e n n o F i l e s = $ ( l s/ p r o c / $ 1 / f d|w cw ) e c h o" P r o c e s sw i t hi d$ 1e x i s t sa n du s e s$ n o F i l e sf i l e s . " t o t a l = $ ( ( $ t o t a l + $ n o F i l e s ) ) e l s e e c h o" N op r o c e s sw i t hi d$ 1 " f i s h i f t d o n e e c h o" T o t a ln u m b e ro ff i l e su s e d :$ t o t a l . "
uso/laboratoare/laborator10.txtLastmodified:2012/12/1909:43byioan.eftimie