sexta-feira, 29 de abril de 2016

Shell script para Iniciantes - Artigo 01

Vou descrever nas próximas linhas meus primeiros passos com Shell script.

Tartaruga (Ou Jabuti?) Da capa do Livro de Shell Script da O'Reilly
 A priori, este estudo não é lá muito catedrático nem sigo nenhuma bibliografia a risca... O interessante é expor fragmentos de informações que fui juntando e entendendo aos poucos até ir concretizando os meus primeiros scripts.

1. Criando um arquivo para escrever o script

Um arquivo de Shell script não é nada mais do que um arquivo de texto iniciado com "#!/bin/bash" sem as aspas na primeira linha.
As linhas seguintes possuem o conteúdo do script.

Outro ponto importante é:
Após escrever o script, é necessário dar permissão de execução para o mesmo.
Por exemplo:
chmod +x [nome_do_script.sh]

Pelo que entendi até agora, a extensão ".sh" é meramente uma padronização  para fácil identificação. Mas não é de fato necessária.

2. O objetivo do primeiro script: ver a hora do sistema e cumprimentar o usuário de acordo com a hora do dia.

O que o script deve fazer:
a) Ler a Hora

b) Se for um horário entre 6 às 11, dizer "Bom dia $USER", 12 e 17, dizer "Boa tarde $USER", qualquer outro horário dizer "Boa noite $USER".

3. Observações

Obs.: $USER é uma variável do sistema que guarda o nome do usuário logado.
Obs.2: Para o script dizer usaremos o comando "echo [MENSAGEM]".
Obs.3: Para obter a data, usaremos o comando "date" seguido do argumento "+%k" que joga na tela somente o número relacionado a hora. Dica: Dê um comando "man date" e leia a sessão "FORMAT".

Obs.4: Usaremos aqui condições de programação com if, elif, else, fi, seguidos por um then.
Obs.5: Usaremos condições de comparação de valores "-ge", "-a" e "-le". Não vamos nos aprofundar nelas neste texto. Porém, devemos usá-los por hora como um exemplo.

4. O Script:

#!/bin/bash

if [ "$(date +%k)" -ge 6 -a "$(date +%k)" -le 11 ]
then
echo "Bom dia $USER !!!"

elif [ "$(date +%k)" -ge 12 -a "$(date +%k)" -le 17 ]
then
echo "Boa tarde $USER !!!"

else echo "Boa noite $USER !!!"
fi

5. Passos finais

Salve o script em um arquivo(mensagem.sh), dê a permissão de execução (chmod +x mensagem.sh) e rode o script!


6. Leitura complementar:

- man date
- man echo


7. Dúvidas:

Qualquer dúvida, deixe um comentário no post. Valeu!