o ermitão renasce - a vida dentro da casca
DESCRIPTION
Grande parte da administração diária requer tempo e muita digitação, em grande parte uma sequência longa e cansativa de comandos para identificar possíveis problemas em um sistema. Automatizar essas tarefas pode ser excitante e muito prático. Esse tutorial mostra as funções básicas que o Born Again Shell (Bash) proporciona para fazer uma estrutura básica de comandos, tomadas de decisão, laços, e mais comandos, fazendo scripts totalmente automatizados e/ou scripts interativos.TRANSCRIPT
Ermitão RenacidoA vida na casca
Luiz [email protected]
13/03/13 15:37 TcheLinux Porto Alegre 2012 2
O poder do Bash Script
● Console texto (shell) altamente programável;● Simples de programar (não precisa ser
programador);● Ágil e prático;● Usa as funcionalidades do Sistema;● Executa qualquer ação que pode ser
executada em uma console shell.
13/03/13 15:37 TcheLinux Porto Alegre 2012 3
A porta é a necessidade
● O que precisa ser feito?● Sempre usa comandos parecidos?● É necessário decidir algo?● O que é levado em consideração para a
decisão?● São muitas ou poucas variáveis?● Precisa interação do usuário?
13/03/13 15:37 TcheLinux Porto Alegre 2012 4
Criatividade é a chave
● O que usar e quando usar.● Como pegar as variáveis?● Tomadas de decisões com as variáveis?● Laços simples?● Laços complexos?● Encadear comandos?
13/03/13 15:37 TcheLinux Porto Alegre 2012 5
Variáveis
● Entrada de variáveis:– $1, $2, $3 … $N – Argumento 1, 2, 3 … N
● Variáveis internas:– Integer/Char/String/Float/Whatever;
● Não faz nenhuma diferença
– NOME=INFORMAÇÃO
13/03/13 15:37 TcheLinux Porto Alegre 2012 6
variáveis
● Uso especial:– $?
● Verificação do status de saída do último comando
– $@● Todos os argumentos
– $#● Número de argumentos passados
13/03/13 15:37 TcheLinux Porto Alegre 2012 7
Tomada de decisão
if [TESTE]; then
comandos;
elif [TESTE]; then
comandos;
else
comandos;
fi
13/03/13 15:37 TcheLinux Porto Alegre 2012 8
Tomada de decisões
case $VAR in
teste1) comandos;;;
teste2)commandos;;;
testeN)comomandos;;;
*)commandos;;;
esac
13/03/13 15:37 TcheLinux Porto Alegre 2012 9
Laços
for variavel in 'situações'; do
comandos;
done
13/03/13 15:37 TcheLinux Porto Alegre 2012 10
Laços
while [TESTE]; do
comandos
done
while :; do # Isso é um laço infinito
comandos
done
13/03/13 15:37 TcheLinux Porto Alegre 2012 11
Direcionando saídas
● Para arquivo:– comando >> arquivo.log
– comando | tee -a arquivo.log
● Apenas erros:– comando 2> /dev/null 1> arquivo.log
13/03/13 15:37 TcheLinux Porto Alegre 2012 12
Encadeamento
● comando1 E comando2:– comando1 && comando2
● comando1 OU comando2:– comando1 || comando2
13/03/13 15:37 TcheLinux Porto Alegre 2012 13
Interatividade Gráficaou quase isso...
● Dialog – Janelas na console texto– Multiplas formas de tomar informações do
operador em consoles não gráficas.
● Zenity – Gnome– Interatividade através do X.org, também com
diversas formas de tomar informações.
13/03/13 15:37 TcheLinux Porto Alegre 2012 14
Para saber mais
● Advanced Bash-Scripting Guide– http://tldp.org/LDP/abs/html/
● Google é seu amigo...– Pergunte ao oráculo...
13/03/13 15:37 TcheLinux Porto Alegre 2012 15
Sobre o palestrante
● Site:– http://www.universolivre.com.br
● Email:– [email protected]
● Gtalk e Google+:– [email protected]