Oficina shell

15
Oficina de Programação em Shell Script Amador Pahim Apresentado por: Analista de Suporte/UCS CCTI - Semana Acadêmica

Transcript of Oficina shell

Page 1: Oficina shell

Oficina de Programação em Shell Script

Amador PahimApresentado por:

Analista de Suporte/UCS

CCTI - Semana Acadêmica

Page 2: Oficina shell

Introdução

Page 3: Oficina shell

O que é Shell?

Page 4: Oficina 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

Page 5: Oficina shell

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.

Page 6: Oficina shell

1º Script

● Mostre informações do sistema (data, hora e discos).● Melhorar a saída.● Interagir com o usuário.

Page 7: Oficina shell

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, $?, ...

Page 8: Oficina shell

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)

Page 9: Oficina shell

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

Page 10: Oficina shell

2º Script

● Mostre na tela todos os parâmetros recebidos, numerando-os.

Page 11: Oficina shell

Ordem de execução

● Resolução de redirecionamentos● Substituição de variáveis● Substituição de meta caracteres● Passagem do comando para o Kernel

Page 12: Oficina shell

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

Page 13: Oficina shell

Redirecionamentos

● Here document:

<<● Exemplo:

# ftp -ivn host.domain.com << FIM

user admin teste

bin

get file.tar.gz

FIM

Page 14: Oficina shell

3º Script

● Leia 3 números e mostre-os em ordem decrescente.

Page 15: Oficina shell

[email protected]:

Fontes:

www.julioneves.comaurelio.net

[email protected]