Usando variáveis em shell script
Publicado por Jamilson Silva do Carmo 30/07/2009
[ Hits: 12.859 ]
Este script desenvolvi com intuito de praticar o que venho aprendendo no livro do guru Aurélio C. Marinho.
#!/bin/bash
#
# --------------------------------------------
# Criado em: Qua 29/Jul/2009 - 11:22hs
# Autor: Jamilson Silva <jscarmo@ig.com.br>
# Manutenção:
# --------------------------------------------
#
# Propósito Script:
#
#
# Histórico:
# v1.0 - Aprendendo a usar o comando date
# v1.0.1 - Incluida a opção -h, --help
# v1.0.2 - Arrumado o bug quando alguma opção é passada errada
# v1.0.3 - Incluidas as opções (-t, --tudo), (-d, --dia), (-b, --bi)
#
# Licença: GPL
# Inicialização das variáveis
VERSAO=$(grep '^# v' $0 | tail -n 1 | cut -d"-" -f1 | tr -d "#v") # Extrai versão do cabeçalho do programa
ESTADO="Manaus,AM" # Define nome do estado e sua capital
EXTENSO=0 # Ativa a data por extenso
HORA=0 # Ativa a hora
TUDO=0 # Ativa data completa
ANO=0 # Ativa a verificaçã se ano é bissexto ou não
DIA=0 # Ativa verificação do dia da semana
SOBRE="
mostrando_datas $VERSAO\n\n
Copyright © 2009 Free Software Foundation, Inc.\n
Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl.html>\n
Este software é livre: você é livre para mudá-lo e redistribuí-lo.\n
NÃO HÁ GARANTIA, para a extensão permitida por lei.\n\n
Escrito por Jamilson Silva.\n
"
MENSAGEM_USO="\n
Uso: `basename $0` [OPÇÕES]\n\n
\tOPÇÕES:\n
\t -e, --ext \tMostra data na forma extensa\n
\t -h, --hora \tMostra a hora\n
\t -t, --tudo \tMostra a data completa\n
\t -a, --ajuda \tMostra esta tela e sai\n
\t -d, --dia \tMostra o dia da semana\n
\t -b, --bi \tMostra se o ano é bissexto ou não\n
\t -v, --versao \tMostra a versão do programa e sai
\n\n
Comunicar 'bugs' para <jscarmo@ig.com.br>
"
ERRO="\n
$0: opção inválida -- '`echo "$1" | tr -d "-" `'\n
Tente '$0 --help' para mais informação.\n
"
dia_semana(){
dia=$(date +%w)
if [ $dia -eq 0 ]; then
echo -e "\nDia da Semana: $(date +%A)\n"
elif [ $dia -eq 6 ]; then
echo -e "\nDia da Semana: $(date +%A)\n"
else
echo -e "\nDia da Semana: $(date +%A)-feira\n"
fi
}
ano_bissexto(){
ano=$(cal 2 $(date +%Y) | grep 29 | wc -l)
if [ $ano -eq 1 ]; then
echo -e "\nAno: É Bissexto"
else
echo -e "\nAno: Não É Bissexto"
fi
echo
}
if [ $# -eq 0 ]; then
date # $(date)
#echo -e "Você deve passar um parâmetro \nVerifique usando $0 -a para saber quais parâmetros usar\n"
fi
while [ -n "$1" ]; do
case "$1" in
-e|--ext) EXTENSO=1
;;
-h|--hora) HORA=1
;;
-t|--tudo) TUDO=1
;;
-a|--ajuda) echo -e $MENSAGEM_USO
exit 0
;;
-d|--dia) DIA=1
;;
-b|--bi) ANO=1
;;
-v|--versao) echo -e $SOBRE
exit 0
;;
*) echo -e $ERRO ; exit 1
;;
esac
shift
done
if [ "$EXTENSO" = 1 ]; then
echo -e "\n$(date +"Manaus,AM %d de %B de %Y")\n"
fi
if [ "$HORA" = 1 ]; then
echo
echo "Hora Certa: $(date +%H:%M:%S)"
echo
fi
if [ "$ANO" = 1 ]; then
ano_bissexto
fi
if [ "$DIA" = 1 ]; then
dia_semana
fi
if [ "$TUDO" = 1 ]; then
echo ""
dia_semana
echo "Hora: $(date +%H:%M:%S)"
echo -e "\n$(date +"Manaus,AM %d de %B de %Y")"
ano_bissexto
fi
Troca automatica de papel de parade no fluxbox
Converter animes em .mp4 para .avi (e outros) com qualidade perfeita
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









