Scripts shell Linux

Dernière mise à jour : 26/05/2016

Recherche d'enregistrement

Énoncé

Écrivez un script qui affiche l'horoscope d'un signe donné pour un mois donné. Les paramètres passés seront le mois et le signe voulus. Les prévisions seront stockées dans différents fichiers, un par mois, contenant chaque signe. Les prévisions auront la structure suivante :

<signe>:<theme>:<prévision>

Les fichiers porteront comme nom le mois et auront "dat" comme extension.

Solution

#!/bin/bash

# (c) Sébastien Adam 2013
# Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage
# dans les Mêmes Conditions 2.0 Belgique.

E_BADNBRARGS=3
E_BADMONTH=4
E_DATUNREADABLE=5
E_BADSIGN=6

if [[ $# -ne 2 ]]
then
  echo "Usage: $0 <signe> <mois>"
  exit $E_BADNBRARGS
fi

case "$2" in
  janvier   ) ;;
  février   ) ;;
  mars      ) ;;
  avril     ) ;;
  mai       ) ;;
  juin      ) ;;
  juillet   ) ;;
  aout      ) ;;
  septembre ) ;;
  octobre   ) ;;
  novembre  ) ;;
  décembre  ) ;;
  *         )
    echo "$0: $2 n'est pas un mois correct"
    exit $E_BADMONTH
  ;;
esac

if [[ ! -e shell_002_$2.dat || ! -r shell_002_$2.dat ]]
then
  echo "$0: shell_002_$2.dat n'a pas pu être lu"
  exit $E_DATUNREADABLE
fi

case "$1" in
  bélier|taureau|gémeaux|cancer|lion|vierge|balance|scorpion|sagittaire|capricorne|verseau|poissons )
    grep -i -e ^$1 shell_002_$2.dat | cut -d: -f2,3
  ;;
  * )
    echo "$0: $1 n'est pas un signe du zodiaque valide"
    exit $E_BADSIGN
  ;;
esac

exit 0