Erreur d'execution
ennouma_123
Messages postés
5
Statut
Membre
-
zipe31 Messages postés 38797 Statut Contributeur -
zipe31 Messages postés 38797 Statut Contributeur -
bonjour, svp je veux savoir la commande exacte pour exécuter ce script dans le terminal
car lorsque je fais cette commande: ./projet.sh 23/03/2020 j'ai deux erreurs:
1-cannot open '+2' for reading: no such file or directory
2- erreur: usage: projet.sh jour mois annee
l'idée de script est l'affichage du jour de la semaine correspond une date donnée.
voici le script:
car lorsque je fais cette commande: ./projet.sh 23/03/2020 j'ai deux erreurs:
1-cannot open '+2' for reading: no such file or directory
2- erreur: usage: projet.sh jour mois annee
l'idée de script est l'affichage du jour de la semaine correspond une date donnée.
voici le script:
#!/bin/bash
# queljour.script
# recherche du jour de la semaine pour une date donnee
case $# in
3) ;;
*) echo "ERREUR: usage : `basename $0` jour mois annee" 1>&2;
exit 1;;
esac
# sauvegarde des arguments d'appel
jour=$1 ; mois=$2 ; an=$3
if ! cal $mois $an |tail +2|grep -e $jour >/dev/null
then
echo "ERREUR: date incorrecte ($jour/$mois/$an)" 1>&2;
exit 1;
fi
# La commande cal a en sortie le format suivant :
# ligne 1 : mois et annee
# ligne 2 : jours (S M Tu W Th F S : Dim Lun Mar Mer Jeu Ven Sam)
# Ces 2 lignes seront elimines et le test portera sur un jour avec 2 chiffres
# sachant que le 1er est le meme jour que le 8 et le 15, le 5 que le 12 ...
# conversion de 1 et 2 en 15 et 16 et de 3,4 .. 9 en 10,11 .. 16
# pour garantir l'unicite de la recherche (sinon 6 se retouve dans 16 et 26...)
case $jour in
0) echo "ERREUR: Date incorrecte" 1>&2;
exit 1;;
1|2) let j=$jour+14;;
3|4|5|6|7|8|9) let j=$jour+7;;
*) j=$jour;;
esac
# recuperation de la semaine concernee en eliminant les 3 premieres lignes
# puis de la position du jour recherche
set `cal $2 $3 | tail +2 | grep "$j"`
# traduction de la position en un jour de la semaine
case $j in
$1) JOUR=Dimanche;;
$2) JOUR=Lundi;;
$3) JOUR=Mardi;;
$4) JOUR=Mercredi;;
$5) JOUR=Jeudi;;
$6) JOUR=Vendredi;;
$7) JOUR=Samedi;;
esac
echo "Le $jour $mois $an est un $JOUR"
A voir également:
- Erreur d'execution
- Erreur 0x80070643 - Accueil - Windows
- Erreur 4201 france tv ✓ - Forum Réseaux sociaux
- Erreur 4101 france tv - Forum Lecteurs et supports vidéo
- J'aime par erreur facebook notification - Forum Facebook
- Code erreur f3500-31 ✓ - Forum Bbox Bouygues