Script Shell [Défau]
Résolu
Mirzo
-
Mirzo Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
Mirzo Messages postés 75 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je suis en train d'essayer de creer un scrip shell afin de créer la miniature d'une image jpg en fonction de sa date de création. Seulement pour la boulce for à la fin du script il y à un problème car l'éxecution s'arrête juste avant et entre apparament dans une boucle infini... Je ne vois pas qu'est ce qui coince ... quelqun pourrait m'aider ?
Merci.
Voici le script :
Je suis en train d'essayer de creer un scrip shell afin de créer la miniature d'une image jpg en fonction de sa date de création. Seulement pour la boulce for à la fin du script il y à un problème car l'éxecution s'arrête juste avant et entre apparament dans une boucle infini... Je ne vois pas qu'est ce qui coince ... quelqun pourrait m'aider ?
Merci.
Voici le script :
#! /bin/bash # Test le nombre d'arguments if (( $# !=2 )) then echo "Deux arguments requis" exit 1 fi echo "test arguments éfféctué..." #Test si le fichier existe et si il est bien un répertoire if ! test -d $1 then echo "$1 : inexistant ou non conforme" exit 2 fi echo "test réportoire éfféctué..." #Test le droit d'écriture if ! test -w $1 then echo "$1 : Ecriture non autorisée " exit 3 fi echo "test droit d'écriture éfféctué..." #Test du nombre de caractères de la date if (($(echo $2|wc -c) != 7)) then echo "$2 : Date incorrecte !" exit 4 fi echo "test longueur date éfféctué..." # Test du mois if (($(echo $2 | cut -c3,4 ) > 12 )) || (( $(echo $2 | cut -c3,4 ) < 1)) then echo "$2 : Mois invalide" exit 4 fi echo "test du mois éfféctué.." # Test du jour if (($(echo $2 | cut -c5,6 ) > 31 )) || (( $(echo $2 | cut -c5,6 ) < 1)) then echo "$2 : Jour invalide" exit 4 fi echo "test du jour éfféctué..." # Création dossier miniature cd $1 if ! test -d miniature then mkdir miniature echo "Dossier miniature créer dans le dossier $1." fi echo "Création du dossier miniature éfféctué..." # Conversion des images avec les dates superieur à l'argument $2 cd .. date=$(date -d $2 +%s) mini=$(cut -f1 -d.) datef=$(stat -c %Y $1/$file) for file in $(ls $1 | grep .[Jj][Pp][Gg]) do if (($date < $datef)) then convert $1/$file -thumbnail '100x100' $1/miniature/$mini.png echo "Création de l'imagette de $1/$file" else echo "$1/$file : Date de l'image trop ancienne." fi done echo "conversion éfféctué..." exit 0
A voir également:
- Script Shell [Défau]
- Classic shell - Télécharger - Personnalisation
- Script vidéo youtube - Guide
- Mas script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script cmd - Guide
1 réponse
Salut,
Dans la dernière partie de ton script il y a plusieurs incohérences ;-((
La définition des variables "$mini" et "$datef" ont lieu avant même la boucle et la définition de la variable "$file", de plus la variable "$mini" est incomplète, il manque le fichier ($file) de référence ;-((
Dans la dernière partie de ton script il y a plusieurs incohérences ;-((
La définition des variables "$mini" et "$datef" ont lieu avant même la boucle et la définition de la variable "$file", de plus la variable "$mini" est incomplète, il manque le fichier ($file) de référence ;-((
# Conversion des images avec les dates superieur à l'argument $2 cd .. date=$(date -d $2 +%s) for file in $(ls $1 | grep .[Jj][Pp][Gg]) do mini=$(cut -f1 -d. <<<$file) datef=$(stat -c %Y $1/$file) if (($date < $datef)) then convert $1/$file -thumbnail '100x100' $1/miniature/$mini.png echo "Création de l'imagette de $1/$file" else echo "$1/$file : Date de l'image trop ancienne." fi done
Tout marche bien maintenant.