introducao ao shell script

16

Click here to load reader

Upload: hugo-maia-vieira

Post on 06-Jul-2015

1.912 views

Category:

Technology


3 download

DESCRIPTION

O shell é o prompt da linha de comando do Unix e do Linux, que recebe e executa comandos digitados pelo usuário. Na linha de comando, podemos utilizar diversos comandos um após o outro. Se colocarmos diversas linhas de comandos em um arquivo texto, teremos um script em shell ou, um Shell Script. Além de comandos, um Shell Script pode conter todas as estruturas de uma linguagem de programação, como if, for, while, variáveis e funções. Nesse minicurso veremos como automatizar tarefas usando Shell Script e conheceremos um pouco mais sobre alguns dos comandos mais úteis para serem utilizados tanto nos scripts quanto diretamente pela linha de comando.

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