Introducao ao Shell Script
Click here to load reader
-
Upload
hugo-maia-vieira -
Category
Technology
-
view
1.912 -
download
3
description
Transcript of Introducao ao Shell Script
![Page 1: Introducao ao Shell Script](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/1.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/2.jpg)
¿O que é shell?
¿O que é script?
¿O que é Shell Script?
scripts em shell == Shell Scritp ==
![Page 3: Introducao ao Shell Script](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/3.jpg)
O Shell, terminal, prompt, linha de comando
![Page 4: Introducao ao Shell Script](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/4.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/5.jpg)
$ 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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/6.jpg)
$ 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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/7.jpg)
$ 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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/8.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/9.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/10.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/11.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/12.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/13.jpg)
funcao() { comandos }
funções
pedir_nome() { echo -n "Digite seu nome: " read NOME}
pedir_nomeecho "Olá $NOME!"
![Page 14: Introducao ao Shell Script](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/14.jpg)
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](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/15.jpg)
Agora é apenas codigo!http://github.com/hugomaiavieira/shellscript-scti2011
![Page 16: Introducao ao Shell Script](https://reader037.fdocumentos.tips/reader037/viewer/2022100518/559aa1371a28abf6088b479c/html5/thumbnails/16.jpg)
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