Calculez l’âge du capitaine

Voici un petit script bash que j’ai écrit (avec un peu d’aide, je l’avoue), qui n’a aucune utilité, si ce n’est calculer l’âge de quelqu’un. Il n’utilise que des fonctions de base. L’utilisation est simple, lancez le script et suivez les indications de votre terminal

#!/bin/bash
JourActu=`date +%-d`
MoisActu=`date +%-m`
AnneeActu=`date +%Y`

echo "Nous sommes bien le $JourActu/$MoisActu/$AnneeActu."

read -p 'Entrez votre jour de naissance : ' JourNaiss
read -p 'Entrez votre mois de naissance : ' MoisNaiss
read -p 'Entrez votre année de naissance : ' AnneeNaiss

echo "Vous êtes donc né(e) le $JourNaiss/$MoisNaiss/$AnneeNaiss."

let "AnneeReel = AnneeActu - AnneeNaiss"

if [ $MoisNaiss -gt $MoisActu ] || ( [ $MoisNaiss -eq $MoisActu ] && [ $JourNaiss -gt $JourActu ] )
then
let "AnneeReel = AnneeReel - 1"
fi
echo "Vous avez $AnneeReel ans révolus."

let "AnneeAnniv = AnneeNaiss + AnneeReel"
echo "Votre dernier anniversaire était le $JourNaiss/$MoisNaiss/$AnneeAnniv."

if [ $AnneeAnniv -eq $AnneeActu ]
then
let "MoisReel = MoisActu - MoisNaiss"
else
let "MoisReel = 12 + MoisActu - MoisNaiss"
fi

if [ $JourNaiss -gt $JourActu ] 
then
let "MoisReel = MoisReel - 1"
fi

echo "Vous avez $AnneeReel ans et $MoisReel mois."

if [ $JourNaiss -le $JourActu ]
then
let "JourReel = JourActu - JourNaiss"
else
case $MoisActu in
1 | 2 | 4 | 6 | 8 | 9 | 11)
let "JourReel = 31 - JourNaiss + JourActu"
;;
5 | 7 | 10 | 12)
let "JourReel = 30 - JourNaiss + JourActu"
;;
3)
if [ $(( $AnneeActu % 4 )) -eq 0 ] &&
( [ $(( $AnneeActu % 100 )) -ne 0 ] || [ $(( $AnneeActu % 400 )) -eq 0 ] )
then let " JourReel = 29 - JourNaiss + JourActu"
else let " JourReel = 28 - JourNaiss + JourActu"
fi
;;
esac
fi

echo "Vous avez $AnneeReel ans, $MoisReel mois et $JourReel jours."

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *