Você está na página 1de 18

Shell Script

Bsico do bsico

Shell Script Bsico do bsico
Os sistemas Unix like, como o GNU/Linux, possuem camadas.
Estas camadas so o hardware, o kernel, os programas/comandos e o
shell.
O shell a camada mais externa do sistema e tem ligao intima
(comunicao) com os comandos e programas, os comandos e programas
tm ligao intima com o kernel e este com o hardware.
SHELL
Comandos/programas
Kernel
Hardware

Shell Script Bsico do bsico
O shell o responsvel pela interao entre o usu rio e o sistema
operacional, pois ele que interpreta os comandos e os traduz para uma
linguagem simples e inteligvel para o kernel.
Devido a essa funo, o kernel tem seu desempenho melhorado, pois
menos um trabalho para o mesmo executar.
O shell se parece visualmente com o MS DOS da Microsoft.
J sabemos o que Shell, agora definirei o que Shell Script.

Script um arquivo de texto que possui uma seqncia de instrues e


comandos, estes so executados linha a linha. Podemos fazer uma comparao
grotesca do Shell Script com os arquivos .bat do DOS.

Shell Script Bsico do bsico
A vantagem de se programar em Shell Script automatizar tarefas
rotineiras, como backup, instalao ou remoo de programas.
Por exemplo, se eu tenho 100 usurios para adicionar no sistema posso
fazer um script em shell para realizar essa tarefa em segundos!
Bourne Again Shell: o shell desenvolvido para o projeto GNU usado
pelo GNU/Linux, muito usado pois o sistema que o porta (GNU/Linux)
evolui e adotado rapidamente. Possui uma boa portabilidade, pois possui
caractersticas do Korn Shell e C Shell. representado por bash. O nosso
estudo ser focado neste.

Shell Script Bsico do bsico
Funes do Shell
Analisar dados a partir do prompt (dados de entrada);
Interpretar comandos;
Controlar ambiente Unix like (console);
Fazer redirecionamento de entrada e sada;
Execuo de programas;
Linguagem de programao interpretada.
Conhecimentos bsicos
O uso da tralha (#)
A tralha representa em algumas linguagens de programao um comentrio,
com o Shell Script no diferente.

Shell Script Bsico do bsico
Um script em Shell iniciado com a seguinte linha:
#!/bin/SHELL_EM_USO
Como saber qual shell estou usando?
$ echo $SHELL
Para o GNU/Linux:
#!/bin/bash
Esta linha acima indica o caminho (path) para o interpretador que ser
usado no script.

Shell Script Bsico do bsico
Crase
As crases so usadas para dar prioridade a um comando, veja um
exemplo:
$ echo A verso do kernel do `uname o` `uname r`
Sada:
A verso do kernel deste GNU/Linux 2.6.15
Se voc tirar as crases, veja a sada:
A verso do kernel deste uname o uname r

Shell Script Bsico do bsico
Varivel
Uma varivel representada por $ (cifro).
Exemplo de varivel:
# guarda_roupa=camiseta
# echo $guarda_roupa
Sada:
camiseta

Shell Script Bsico do bsico
Permisso para execuo de script
Depois de editar um novo script, necessrio que modifiquemos a
permisso deste arquivo, seno este no poder ser executado, veja o
porqu:
$ ls l
rw rr 1 leo users 0 2006 05 20 13:20 codigo_fonte
$ chmod +x codigo_fonte
$ ls l
rw xrxrx 1 leo users 0 2006 05 20 13:20 codigo_fonte*

Para executar:
$ ./codigo_fonte

Shell Script Bsico do bsico
Ponto e vrgula (;)
O ponto vrgula (;) serve para separar comandos.
Exemplo:
# mkdir guardaroupa ;cd guardaroupa;touch camiseta;touch bermuda
Este conjunto de comandos diz:
Crie um diretrio chamado "guardaroupa", entre nele e crie os arquivos
"camiseta" e "bermuda" vazios.

Shell Script Bsico do bsico
Matemtica no Shell
Operadores aritmticos:
+ Soma
Subtrao
* Produto
/ Diviso
% Resto da diviso
O comando expr
Para fazer um clculo necessrio usar o comando expr.
Exemplo:
$ expr 20 + 5
Ateno:Apscadacadeiadecaracteresnouso
doexprdevesercolocadoumespaoembranco
(tab).

Shell Script Bsico do bsico
Matemtica no Shell
O comando let
Realiza aritmtica com nmeros inteiros.
Sintaxe:
$ let <expresso>
Exemplo:
$ a=10
$ b=10
$ let c=a+b
$ echo $c
20
$ leta++
$ echo$a

$ let!
$ echo$!
"

Shell Script Bsico do bsico
O comando expr + length
Para pegar o nmero de caracteres de uma string, use o comando
length.
Veja:
$ expr length "4Linux & Hackerteen"
Sada: 19
Observao:o shell s conta o que est dentro das aspas, inclusive
os espaos em branco.
Usando a calculadora bc do GNU/Linux e o comando scale.
O comando scale serve para determinar o nmero de casas decimais.
$ echo "scale=1; (25 / 3) + 20" | bc
Resultado: 28.3


Shell Script Bsico do bsico
Trabalhando com parmetros
Voc j pensou como se passa parmetros para um programa em
shell script???
Um parmetro representado por $n, onden a posio do caractere
ou a posio de um conjunto de caracteres.
$1 representa o primeiro caractere ou o primeiro conjunto de caracteres;
$./meu_scriptL
$./meu_scriptLinux
$2 representa o segundo caractere ou o segundo conjunto de caracteres e
assim por diante.
$./meu_script LI
$./meu_script LINUX
Cada parmetro separado por espao.

Shell Script Bsico do bsico
Na prtica, veja como fcil:
Vamos supor que eu tenho um programa chamado monte_nome e eu
quero exibir o nome montado aps receber letra por letra. Veja o script:
####################################
# Script para montar nomes
# Este script recebe seis parmetros
####################################
#!/bin/bash
echo $1$2$3$4$5$6
# Fim do script
$ ./monte_nome 4 L I N U X
(Note que entre cada parmetro h um espao)
Sada: 4LINUX

Shell Script Bsico do bsico
Mas pense neste programa anterior que fiz, pssimo pois est
limitado a seis caracteres apenas.
simples arrumar isso, veja:
# Script para montar nomes
# Este script recebe "n" parmetros
#!/bin/bash
echo $*
# Fim do script
$ ./monta_nome H A C K E R T E E N
Sada: HACKERTEEN
O$* recebe todos os parmetros passados.
O parmetro$0 representa o nome do prprio programa.
O parmetro$# indica a quantidade de parmetros passados ao script.

Shell Script Bsico do bsico
Como ler dados em Shell Script
Usamos o comando read para ler dados de arquivos ou diretamente do
teclado.
Sintaxe:
read var1 var2 var3 ... varN
No terminal faa:
$ read Linux
Debian
$ echo $Linux
Debian

Shell Script Bsico do bsico
Bibliografia
Programao Shell Linux 3 edio
Autor: Julio Cezar Neves
Editora: BRASPORT
Linux Guia do Administrador do Sistema
Autor: Rubem E. Ferreira
Editora: Novatec

Você também pode gostar