Script Shell Data atual - Data de nascimento
Boaa... o que eu preciso parece simples, pegar a data atual e talvez em uma variável uma data de nascimento, e mostrar quantos dias faltam para o aniversário.
Tenho como base esse script, a ideia é melhorar ele... diminuir talvez essa bagaça com algo mais simples.
############################## Pegar valores do sistema - Data do Sistema OperacionalADEHOJE=$(date +"%d")MES=$(date +"%m")ANO=$(date +"%Y")DSEMANA=$(date +"%w")HOJE=$ADEHOJE"-"$MES"-"$ANO echo "Dia =" $ADEHOJE echo "Mês =" $MES echo "Ano =" $ANO echo "Dia da Semana =" $DSEMANA echo "HOJE=" $HOJE############################## Verificar se a data de nascimento informado através de parâmetro x=$1 # DT DATAINFORMADADT_dia="${x:0:2}" # Pegar os dois primeiros caracteres da variável DT_DATAINFORMADADT_mes="${x:3:2}" # Pegar o quarto e quinto caractere da variável DT_DATAINFORMADADT_ano="${x:6:4}" # Pegar da sétima a décima posição de caracteres da variável DT_DATAINFORMADA, ou as quatro últimas posições.echo "niver - Dia=" $DT_diaecho "niver - Mês="$DT_mesecho "niver - Ano="$DT_ano ############################### Testar o dia if test $DT_dia -gt 0 then if test $DT_dia -le 31 then ERROR_DT="OK" else ERROR_DT="Dia informado é maior que 31" fi else ERROR_DT="Valor do dia não confere" fi############################### Testar o mês if test $DT_mes -gt 0 then if test $DT_mes -le 12 then ERROR_DT="OK" else ERROR_DT="Mês informado é maior que 12" fi else ERROR_DT="Mês não confere" fi############################### Testar o ano if test $DT_ano -gt 1900 then if test $DT_ano -le $(date +"%Y") then ERROR_DT="OK" else ERROR_DT="Ano informado é maior que" $(date +"%Y") fi else ERROR_DT="Ano não confere ou inferior a 1900" fi############################### Mensagem de Erroif test $ERROR_DT != "OK" then echo $ERROR_DTelse #Tratar a data de nascimento no formato dd-mm-aaa # Aqui vou comparar o mês de nascimento com o mês do sistema operacional case $DT_mes in "01") ############################### Janeiro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! JANEIRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "02") ############################### Fevereiro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! FEVEREIRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "03") ############################### Março if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! MARÇO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "04") ############################### Abril if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! ABRIL" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "05") ############################### Maio if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! MAIO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "06") ############################### Junho if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! JUNHO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "07") ############################### Julho if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! JULHO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "08") ############################### Agosto if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! AGOSTO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "09") ############################### Setembro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! SETEMBRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "10") ############################### Outubro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! OUTUBRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "11") ############################### Novembro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! NOVEMBRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; "12") ############################### Dezembro if test $DT_mes -lt $MES then echo "O mês $DT_mes do seu aniversário já passou!" else echo "Seu aniversário está chegando! DEZEMBRO" if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23 then echo "dia de aniversário $DT_dia já passou!" else if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22 then echo "dia de aniversário $DT_dia está chegando!" fi fi fi ;; esacfi
Se alguém manjar de shell script... =/
Discussão (6)
Carregando comentários...