• # :)

    Posté par . En réponse au message explication d'un script. Évalué à 3.

    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.