Upload
apsegundo
View
813
Download
0
Embed Size (px)
Citation preview
Oficina de Programação em Shell Script
Amador PahimApresentado por:
Analista de Suporte/UCS
CCTI - Semana Acadêmica
Introdução
O que é Shell?
Vários saboresBourne Shell (sh)● Escrito por Stephen
Bourne, da Bell Labs. Distribuido pela primeira vez com o Unix versão 7, em 1977.
Korn Shell (ksh)● Desenvolvido no
começo dos anos 80 por David Korn, também da Bell Labs.
C Shell (csh)● Feito por Bill Joy para o
BSD.
Almquist Shell (ash) e Debian ash (dash)● BSDs / Debian.
Bourne Again Shell (bash)● Desenvolvido por Brian
Fox em 1987 para o Sistema Operacional GNU.
http://en.wikipedia.org/wiki/Comparison_of_computer_shells
Passos
● Escolha um nome.● Crie um arquivo com o nome escolhido e a
extensão “sh”.● Coloque o shell na primeira linha assim:
#!/bin/bash
● Torne-o executável:
chmod +x script.sh
● Execute-o:
./script.shobs: variável $PATH.
1º Script
● Mostre informações do sistema (data, hora e discos).● Melhorar a saída.● Interagir com o usuário.
Variáveis
● Atribuição:
# var1=Oficina
# var2=”Oficina de Shell Script”
● Vetores:
# vetor[0]=”Semana”
# vetor[1]=”Acadêmica”
● Variáveis de ambiente:● $SHELL, $PWD, $RANDOM, $?, ...
Comando test
Variáveis Arquivos
-lt (LessThan) -d (É diretório)
-gt (GreaterThan) -f (É arquivo)
-le (LessEqual) -r (Arquivo com permissão de leitura)
-ge (GreaterEqual) -s (Arquivo com tamanho mais que 0)
-eq (Equal) -w (Arquivo com permissão de escrita)
-ne (NotEqual) -nt (NewerThan)
= (String igual) -ot (OlderThan)
!= (String diferente) -ef (EqualFile)
-n (String não nula) -a (AND)
-z (String nula) -o (OR)
Importante!
● Passagem de parâmetros:
./script.sh parametro1 parametro2
● Operações aritméticas:
var=$((2+4))
var2=$(($var*2))
● If, for e while:if COMANDO then
comandoselse
comandosfi
for VAR in LISTAGEMdo
comandosdone
while COMANDOdo
comandos done
2º Script
● Mostre na tela todos os parâmetros recebidos, numerando-os.
Ordem de execução
● Resolução de redirecionamentos● Substituição de variáveis● Substituição de meta caracteres● Passagem do comando para o Kernel
Redirecionamentos
● Saída padrão:
> # echo teste > arq1.txt
>> # echo teste2 >> arq1.txt
● Saída de erro padrão:
2> # ls pindamonhangaba 2> arq2.txt
2>> # ls papibaquigrafo 2>> arq2.txt
● Entrada padrão:
< # grep papiba < arq2.txt
Redirecionamentos
● Here document:
<<● Exemplo:
# ftp -ivn host.domain.com << FIM
user admin teste
bin
get file.tar.gz
FIM
3º Script
● Leia 3 números e mostre-os em ordem decrescente.
Fontes:
www.julioneves.comaurelio.net