Slide 1

Slide 1 text

Shell Script Shell Script Almir 'm3nd3s' @m3nd3s [email protected] http://www.almirmendes.net/ http://www.flickr.com/photos/michaelfoleyphotography/2870526321/

Slide 2

Slide 2 text

Sócio/Desenvolvedor na @giran_br. Entusiasta de software livre, desenvolvimento web e metodologias Ágeis. Graduando em Ciência da Computação m3nd3s www.almirmendes.com almir.m3nd3s

Slide 3

Slide 3 text

O Shell

Slide 4

Slide 4 text

Interpretador de comandos e uma poderosa linguagem de programação também!

Slide 5

Slide 5 text

Bash – GNU Bourne-Again SHell ksh – KornShell csh/tcsh – C Shell

Slide 6

Slide 6 text

http://www.flickr.com/photos/imageme/3151725829/ Sequência de comandos aliados a poderosas estruturas de controle ShellScript

Slide 7

Slide 7 text

https://gist.github.com/2466099

Slide 8

Slide 8 text

#!/bin/bash Shell que executará o script

Slide 9

Slide 9 text

#Script para limpar a tela Comentários são inicializados com #

Slide 10

Slide 10 text

Executando

Slide 11

Slide 11 text

Executando $ ./first_shell.sh $ . first_shell.sh $ source first_shell.sh $ chmod +x first_shell.sh

Slide 12

Slide 12 text

Ferramentas http://www.flickr.com/photos/jfc_tech/3368621656

Slide 13

Slide 13 text

echo

Slide 14

Slide 14 text

$ echo “FLISOL 2012” Imprime uma string na saída padrão do shell

Slide 15

Slide 15 text

https://gist.github.com/2466242

Slide 16

Slide 16 text

Variáveis VAR=”FLISOL 2012”

Slide 17

Slide 17 text

Variáveis $ echo $VAR FLISOL 2012

Slide 18

Slide 18 text

Variáveis ${VAR:-texto} Se VAR não está definida, retorna “texto”

Slide 19

Slide 19 text

${#VAR} Retorna o tamanho de VAR Variáveis

Slide 20

Slide 20 text

${VAR:N} Retorna o conteúdo a partir da posição N Variáveis

Slide 21

Slide 21 text

${VAR/texto/novo} Substitui texto por novo Variáveis ${VAR/texto/novo} Substitui texto por novo

Slide 22

Slide 22 text

Estruturas de Controle

Slide 23

Slide 23 text

if

Slide 24

Slide 24 text

https://gist.github.com/2505298 sintaxe

Slide 25

Slide 25 text

O if na verdade é o comando test

Slide 26

Slide 26 text

https://gist.github.com/2505336

Slide 27

Slide 27 text

No content

Slide 28

Slide 28 text

https://gist.github.com/2505357

Slide 29

Slide 29 text

case

Slide 30

Slide 30 text

sintaxe

Slide 31

Slide 31 text

https://gist.github.com/2505380

Slide 32

Slide 32 text

Iterações

Slide 33

Slide 33 text

Sintaxe FOR

Slide 34

Slide 34 text

https://gist.github.com/2514410

Slide 35

Slide 35 text

Sintaxe WHILE

Slide 36

Slide 36 text

https://gist.github.com/2514437

Slide 37

Slide 37 text

Parâmetros

Slide 38

Slide 38 text

$ ./meu_shell.sh p1 p2 p3 ...

Slide 39

Slide 39 text

$0 comando $1...$n Argumentos passados $# Número de argumentos passados $? Exit status

Slide 40

Slide 40 text

https://gist.github.com/2514494

Slide 41

Slide 41 text

Redirecionamentos

Slide 42

Slide 42 text

http://www.flickr.com/photos/imageme/3151725829/ > Redireciona a saída padrão (STDOUT) < Redireciona a entrada padrão (STDIN) >> Redireciona a saída padrão anexando 2> Redireciona a saída de erro (STDERR) 2>> Redireciona a saída de erro anexando 2>&1 Concatena a saída de erro à saída padrão >&2 Concatena a saída padrão à saída de erro | Redireciona a saída padrão na entrada padrão do comando seguinte

Slide 43

Slide 43 text

https://gist.github.com/2514950

Slide 44

Slide 44 text

cat cut grep sort find sed awk dialog tail seq date tac ∞

Slide 45

Slide 45 text

Quanto mais comandos souber, mais rico será seu ShellScript

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

facebook.com/almir.m3nd3s m3nd3s [email protected] www.almirmendes.com