Transcript
Page 1: Introducao ao Shell Script

Introdução ao Shell Script

Hugo Maia Vieira@hugomaiavieira

novembro de 2011Esta obra é licenciada sob uma licençaCreative Commons

Page 2: Introducao ao Shell Script

¿O que é shell?

¿O que é script?

¿O que é Shell Script?

scripts em shell == Shell Scritp ==

Page 3: Introducao ao Shell Script

O Shell, terminal, prompt, linha de comando

Page 4: Introducao ao Shell Script

chmod +x arquivo

Localização do interpretador: hashbang¹ (#!)

Scripts executáveis (Unix)

#!/bin/sh

#!/usr/bin/env sh

ou

¹ http://en.wikipedia.org/wiki/Shebang_(Unix)

Page 5: Introducao ao Shell Script

$ VARIAVEL='bla bla bla'$ echo $VARIAVELbla bla bla

Variáveis

+ Não pode haver espaços ao redor do igual

+ O comando unset apaga a variável

+ É possível armazenar a saída de um comando usando o $(...):

$ DATA=$(date +%x)$ echo $DATA09-11-2011

Page 6: Introducao ao Shell Script

$ echo $((5*8))40

$ SOMA=$((2+5+1))$ echo $SOMA8

$ RESPOTA=$((SOMA*2))$ echo $RESPOSTA16

Expressões aritméticas

+ A construção utilizada para indicar uma expressão aritmética É $((...)). Sim, com 2 parênteses!

Page 7: Introducao ao Shell Script

$ test EXPRESSÃO$ test [ EXPRESSÃO ]

$ man test

$ test "a" = "a" && echo "é igual!"é igual$ echo $?0

$ [ "a" = "b" ] && echo "é igual!"$ echo $?1

O comando test

+ Para a sintaxe usando colchetes, deve ter um espaço entre a expressão e os colchetes.

Page 8: Introducao ao Shell Script

if COMANDOthen comandos elif COMANDOthen comandoselse comandos fi

if

+ O if testa um comando e não uma condição. Porém, existe o comando test que testa condições.

if test "a" -gt 25 #poderia usar [ "a" -gt 25 ]then echo "é maior que 25"else echo "é menor que 25"fi

+ Fique ligado: o if é fechado com o fi, ou seja, if invertido.

Page 9: Introducao ao Shell Script

for VARIAVEL in LISTAdo comandos done

for

+ O for percorre uma lista, pegando um elemento a cada iteração.

echo 'Seu computador irá explodir em 5 segundos'for numero in cinco quatro três dois umdo echo "$numero" sleep 1done echo "BUUMMMM!!!"

Page 10: Introducao ao Shell Script

for+ Um comando muito útil para usar com o for é o seq, que gera uma sequência numérica.

for numero in $(seq 5)

+ Outro comando muito útil para usar com o for é o cat:

contador=0for pais in $(cat dados.txt)do contador=$((contador+1)) echo "$contador: $pais"done

Page 11: Introducao ao Shell Script

while COMANDOdo comandos done

while

numero=0while test $numero -le 10do numero=$((numero+1)) echo "Contando: $numero"done

+ Existem também o until, que têm as mesmas características do while. a única diferença é que ele faz o contrário.

Page 12: Introducao ao Shell Script

case VARIAVEL in caso1) comando; comando;; caso2) comando; comando;; *) comando;;esac

case

case "$1" in -h | --help) echo "$MENSAGEM_DE_USO" ;; -V | --version) echo "1.0" ;; *) echo "Opção inválida: $1" ;;esac

+ Fique ligado: o case é fechado com o esac, ou seja, case invertido.

Page 13: Introducao ao Shell Script

funcao() { comandos }

funções

pedir_nome() { echo -n "Digite seu nome: " read NOME}

pedir_nomeecho "Olá $NOME!"

Page 14: Introducao ao Shell Script

cut -d : -f 2 /etc/passwd

# $0 = cut# $1 = -d# $2 = :# $3 = -f# $4 = 2# $5 = /etc/passwd# $# = 5# $* = -d : -f 2 /etc/passwd

Opções de linha de comando+ Variáveis especiais e parâmetros posicionais

$0 Nome do script→$1-n Parâmetros passados à linha de comando→$# Número de parâmetros passados→$* Lista de parâmetros passados→

Page 15: Introducao ao Shell Script

Agora é apenas codigo!http://github.com/hugomaiavieira/shellscript-scti2011

Page 16: Introducao ao Shell Script

http://www.tldp.org/guides.htmlAdvanced Bash-Scripting Guide

Referências

http://www.novatec.com.br/livros/shellscript/Shell Script Professinal – Aurélio Marinho Jargas

http://en.wikipedia.org/wiki/Shebang_(Unix)Sobre o hashbang


Top Related