Escolar Documentos
Profissional Documentos
Cultura Documentos
Bsicodobsico
ShellScriptBsicodobsico
OssistemasUnixlike,comooGNU/Linux,possuemcamadas.
Estascamadassoohardware,okernel,osprogramas/comandoseo
shell.
Oshellacamadamaisexternadosistemaetemligaointima
(comunicao)comoscomandoseprogramas,oscomandoseprogramas
tmligaointimacomokerneleestecomohardware.
SHELL
Comandos/programas
Kernel
Hardware
ShellScriptBsicodobsico
Oshelloresponsvelpelainteraoentreousurioeosistema
operacional,poiselequeinterpretaoscomandoseostraduzparauma
linguagemsimpleseinteligvelparaokernel.
Devidoaessafuno,okerneltemseudesempenhomelhorado,pois
menosumtrabalhoparaomesmoexecutar.
OshellseparecevisualmentecomoMSDOSdaMicrosoft.
JsabemosoqueShell,agoradefinireioqueShellScript.
Scriptumarquivodetextoquepossuiumaseqnciadeinstruese
comandos,estessoexecutadoslinhaalinha.Podemosfazerumacomparao
grotescadoShellScriptcomosarquivos.batdoDOS.
ShellScriptBsicodobsico
AvantagemdeseprogramaremShellScriptautomatizartarefas
rotineiras,comobackup,instalaoouremoodeprogramas.
Porexemplo,seeutenho100usuriosparaadicionarnosistemaposso
fazerumscriptemshellpararealizaressatarefaemsegundos!
BourneAgainShell:oshelldesenvolvidoparaoprojetoGNUusado
peloGNU/Linux,muitousadopoisosistemaqueoporta(GNU/Linux)
evoluieadotadorapidamente.Possuiumaboaportabilidade,poispossui
caractersticasdoKornShelleCShell.representadoporbash.Onosso
estudoserfocadoneste.
ShellScriptBsicodobsico
FunesdoShell
Analisardadosapartirdoprompt(dadosdeentrada);
Interpretarcomandos;
ControlarambienteUnixlike(console);
Fazerredirecionamentodeentradaesada;
Execuodeprogramas;
Linguagemdeprogramaointerpretada.
Conhecimentosbsicos
Ousodatralha(#)
Atralharepresentaemalgumaslinguagensdeprogramaoumcomentrio,
comoShellScriptnodiferente.
ShellScriptBsicodobsico
UmscriptemShelliniciadocomaseguintelinha:
#!/bin/SHELL_EM_USO
Comosaberqualshellestouusando?
$echo$SHELL
ParaoGNU/Linux:
#!/bin/bash
Estalinhaacimaindicaocaminho(path)paraointerpretadorqueser
usadonoscript.
ShellScriptBsicodobsico
Crase
Ascrasessousadasparadarprioridadeaumcomando,vejaum
exemplo:
$echoAversodokerneldo`unameo``unamer`
Sada:
AversodokerneldesteGNU/Linux2.6.15
Sevoctirarascrases,vejaasada:
Aversodokerneldesteunameounamer
ShellScriptBsicodobsico
Varivel
Umavarivelrepresentadapor$(cifro).
Exemplodevarivel:
#guarda_roupa=camiseta
#echo$guarda_roupa
Sada:
camiseta
ShellScriptBsicodobsico
Permissoparaexecuodescript
Depoisdeeditarumnovoscript,necessrioquemodifiquemosa
permissodestearquivo,senoestenopoderserexecutado,vejao
porqu:
$lsl
rwrr1leousers02006052013:20codigo_fonte
$chmod+xcodigo_fonte
$lsl
rwxrxrx1leousers02006052013:20codigo_fonte*
Paraexecutar:
$./codigo_fonte
ShellScriptBsicodobsico
Pontoevrgula(;)
Opontovrgula(;)serveparasepararcomandos.
Exemplo:
#mkdirguardaroupa;cdguardaroupa;touchcamiseta;touchbermuda
Esteconjuntodecomandosdiz:
Crieumdiretriochamado"guardaroupa",entreneleecrieosarquivos
"camiseta"e"bermuda"vazios.
ShellScriptBsicodobsico
MatemticanoShell
Operadoresaritmticos:
+Soma
Subtrao
*Produto
/Diviso
%Restodadiviso
Ocomandoexpr
Parafazerumclculonecessriousarocomandoexpr.
Exemplo:
$expr20+5 Ateno:Apscadacadeiadecaracteresnouso
doexprdevesercolocadoumespaoembranco
(tab).
ShellScriptBsicodobsico
MatemticanoShell
Ocomandolet
Realizaaritmticacomnmerosinteiros.
Sintaxe:
$let<expresso>
Exemplo:
$a=10 $ leta++
$ echo$a
$b=10 11
$letc=a+b
$echo$c $ letb
$ echo$b
20 9
ShellScriptBsicodobsico
Ocomandoexpr+length
Parapegaronmerodecaracteresdeumastring,useocomando
length.
Veja:
$exprlength"4Linux&Hackerteen"
Sada:19
Observao:oshellscontaoqueestdentrodasaspas,inclusive
osespaosembranco.
UsandoacalculadorabcdoGNU/Linuxeocomandoscale.
Ocomandoscaleserveparadeterminaronmerodecasasdecimais.
$echo"scale=1;(25/3)+20"|bc
Resultado:28.3
ShellScriptBsicodobsico
Trabalhandocomparmetros
Vocjpensoucomosepassaparmetrosparaumprogramaem
shellscript???
Umparmetrorepresentadopor$n,ondenaposiodocaractere
ouaposiodeumconjuntodecaracteres.
$1representaoprimeirocaractereouoprimeiroconjuntodecaracteres;
$./meu_scriptL
$./meu_scriptLinux
$2representaosegundocaractereouosegundoconjuntodecaracterese
assimpordiante.
$./meu_scriptLI
$./meu_scriptLINUX
Cadaparmetroseparadoporespao.
ShellScriptBsicodobsico
Naprtica,vejacomofcil:
Vamossuporqueeutenhoumprogramachamadomonte_nomeeeu
queroexibironomemontadoapsreceberletraporletra.Vejaoscript:
####################################
#Scriptparamontarnomes
#Estescriptrecebeseisparmetros
####################################
#!/bin/bash
echo$1$2$3$4$5$6
#Fimdoscript
$./monte_nome4LINUX
(Notequeentrecadaparmetrohumespao)
Sada:4LINUX
ShellScriptBsicodobsico
Maspensenesteprogramaanteriorquefiz,pssimopoisest
limitadoaseiscaracteresapenas.
simplesarrumarisso,veja:
#Scriptparamontarnomes
#Estescriptrecebe"n"parmetros
#!/bin/bash
echo$*
#Fimdoscript
$./monta_nomeHACKERTEEN
Sada:HACKERTEEN
O$*recebetodososparmetrospassados.
Oparmetro$0representaonomedoprprioprograma.
Oparmetro$#indicaaquantidadedeparmetrospassadosaoscript.
ShellScriptBsicodobsico
ComolerdadosemShellScript
Usamosocomandoreadparalerdadosdearquivosoudiretamentedo
teclado.
Sintaxe:
readvar1var2var3...varN
Noterminalfaa:
$readLinux
Debian
$echo$Linux
Debian
ShellScriptBsicodobsico
Bibliografia
ProgramaoShellLinux3edio
Autor:JulioCezarNeves
Editora:BRASPORT
LinuxGuiadoAdministradordoSistema
Autor:RubemE.Ferreira
Editora:Novatec