Você está na página 1de 18

ShellScript

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

Você também pode gostar