Tu as encore des soucis avec ce programme on dirait... Je ne pense pas que ce script shell soit la cause de tes ennuis, mais voici grosso modo ce qu'il fait:
#!/bin/bash
# ce script necessite neuf arguments, on verifie qu'ils sont bien la
if [ $# -ne 9 ]; then
echo Il manque un ou plusieurs arguments:
echo La syntaxe est:
echo 0ドル date_deb nbjour maille long_min long_max lat_min lat_max dossier sortie
exit -1
fi
# separateur de dossiers
sep=/
# executable realisant la concatenation
concat=concat
# executable realisant la synthese
synthese=syntheseV
# dossier courant
dir=$(pwd)
# 9ドル est le dossier de sortie, on se place dedans
cd 9ドル
# on verifie s'il existe un 'appendfile' dedans, on le supprime le cas echeant
if [ -e appendfile ]; then
echo Removing old appendfile
rm appendfile*
fi
# on revient dans le dossier courant
cd $dir
my=MY*
k=0
# pour tous les fichiers commencant par MY du dossier de travail (8ドル):
for i in 8ドル$my; do
# declare un entier deb contenant la taille du nom du dossier de travail (8ドル)
# cela permet de travailler par la suite sur le nom de fichier commencant en MY
declare -i deb=`expr length 8ドル`
# on ajoute 19 a deb
deb=`expr $deb+19`
# on prend une sous chaine de longueur 7 a partir du deb ieme caractere de $i
# donc cela revient a selectionner les asterisques dans le nom de fichier suivant:
# dossier_de_travail(8ドル)/MY?????????????????*******
fin=`expr substr $i $deb 7`
# taille est egal a 7 - la longueur de la sous chaine recuperee a l'instant
taille=`expr 7 - length $fin`
# on declare un entier jour
declare -i jour
case "$taille" in
"0")
# si la taille vaut 0, on donne a jour la valeur des 3 premiers caracteres de $fin en base 10
jour=10#`expr substr $fin 1 3`
;;
"1")
# idem avec deux caracteres de fin
jour=10#`expr substr $fin 1 2`
;;
"2")
# toujours pareil, avec un seul caractere
jour=10#`expr substr $fin 1 1`
;;
esac
# ne pas confondre avec $sep qui vaut /
sepa=_
# on reinitialise deb a la longueur du dossier de travail
deb=`expr length 8ドル`
# cette fois-ci on commence a 15
deb=`expr $deb+15`
# on recupere une sous chaine de taille 4 a partir de $deb dans le nom de fichier $i
# cela revient a recuperer les asterisques dans le nom suivant:
# dossier_de_travail(8ドル)/MY?????????????****xxxxxxx
# (x represente la partie d'ou on a extrait le jour tout a l'heure)
annee=`expr substr $i $deb 4`
# on declare max, contenant l'addition de date_deb (1ドル) et nbjour
declare -i max=`expr 1ドル+2ドル`
# on a initialise k a zero avant la boucle
if [ $k -eq '0' ]; then
# si k = 0 (premier fichier de la liste), on definit appendfile sous la forme suivante:
# appendfileANNEE_DATEDEB_MAX
# avec MAX l'addition de date_deb et nbjour
appendfile=appendfile$annee$sepa1ドル$sepa$max
# on met k a 1, on ne repassera plus ici par la suite, donc
k=1
fi
# si la valeur jour qu'on a trouve dans le nom de fichier est superieure ou egale
# a date_deb et strictement inferieure a MAX:
if [ "$jour -ge 1ドル" -a "$jour -lt $max" ]; then
# on appelle concat dans le dossier original avec le nom du fichier, et appendfile
$dir$sep$concat $i 9ドル$appendfile
fi
done
echo Construction des images et statistiques
# ici on appelle syntheseV dans le dossier original en lui repassant tous les
# parametres du script et le fichier appendfile qu'on vient de creer au dessus
$dir$sep$synthese 1ドル 2ドル 3ドル 4ドル 5ドル 6ドル 7ドル 8ドル 9ドル $appendfile
Rien de bien sorcier comme tu vois, je pense que le problème est dans ton executable syntheseV de la dernière fois.
# :)
Posté par JaguarWan . En réponse au message explication d'un script. Évalué à 3.
Rien de bien sorcier comme tu vois, je pense que le problème est dans ton executable syntheseV de la dernière fois.