O documento apresenta uma palestra sobre Bash Script, descrevendo suas principais funcionalidades como console de texto programável, simples programação, uso de funcionalidades do sistema e execução de ações de console. É destacado o poder da criatividade ao usar variáveis, laços e tomadas de decisão para automatizar tarefas.
1. Ermitão Renacido
A vida na casca
Luiz Guaraldo
guaraldo@universolivre.com.br
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 2
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 3
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 4
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 5
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 6
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 7
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 8
9. Laços
for variavel in 'situações'; do
comandos;
done
13/03/13 15:37 TcheLinux Porto Alegre 2012 9
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 10
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 11
12. Encadeamento
● comando1 E comando2:
– comando1 && comando2
● comando1 OU comando2:
– comando1 || comando2
13/03/13 15:37 TcheLinux Porto Alegre 2012 12
13. Interatividade Gráfica
ou 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 13
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 14
15. Sobre o palestrante
● Site:
– http://www.universolivre.com.br
● Email:
– guaraldo@universolivre.com.br
● Gtalk e Google+:
– softwarelivre@gmail.com
13/03/13 15:37 TcheLinux Porto Alegre 2012 15