Messages d'eereurs en shell - Page 2

  1. L'algo est dans les commentaires. Dans un éditeur qui colore les lignes c'est lisible.
    EN effet j'ai changé la lecture d'un élément du tableau.

    Le message d'erreur reste : unary operator expected

    Pourtant j'ai essayé d'initialiser la première case du tableau.
    1. Modérateur
      L'algo est dans les commentaires
      Oui ça j'avais vu, mais comme c'est pas très clair pour moi...

      Reprends chaque ligne de commentaire et en regard mets ce que tu veux (voudrais) obtenir (en extrapolant le résultat des variables en fonction de celles sont sensées contenir) s'il te plaît, merci ;-)
  2. DEBUT
    #création du fichier ventesdate_du_jour.txt

    #écriture des deux premières lignes dans le fichier
    afficher("blablabla")
    afficher("blablabla")

    #initialisation des vraiables
    k <--0
    j <--0
    i <-- 0
    montantTotal <--0
    tableau <-- 0

    tant que (i <= nbLignes du fichier ventesJour.txt)
    faire
    reference <-- (la reference du produyit de la ligne i)
    #verification que referejnce n'a pas deja ete traitee
    tant que ((tableau[j] != reference) OU ( j < k )
    faire
    j++
    ftq

    #si j=tailleTableau alors reference pas trouvee et on la traite
    si ( j = k ) alors
    traitement des montants et quantites
    fsi

    #on passe a la ligne suivante
    i++
    ftq

    FIN
    1. Mais il semblerait que l'erreur se trouve sur le test du second while :

      while [ $tableau[$j] -ne $reference ] || [ $j -lt $k ]
      	do
      		let j=$j+1
      	done
      1. PLutot

        while [ ${tableau[$j]} -ne $reference ] || [ $j -lt $k ]
        do
        let j=$j+1
        done
        1. Modérateur
          Salut,

          Déjà il y a une erreur dans : nbLigneTotal=`wc -l ventesJour.txt`
          La sortie de cette commande ne renvoie pas un nombre seul, mais un nombre suivi du nom du fichier, donc forcément le test qui s'en suit foire ;-((

          Mieux vaut utiliser la syntaxe : cat ventesJour.txt | wc -l

          Autre chose, mieux vaut privilégier la syntaxe $(commande) plutôt que l'emploi des quotes inversées `commande`...
          donc :
          nbLigneTotal=$(cat ventesJour.txt | wc -l)
          et dans le même esprit :
          date_du_jour=$(date +"%D)

          Il y a aussi une erreur dans le test suivant : while [ i -le nbLigneTotal ]
          Il manque le signe "$" à ta variable "while [ i -le $nbLigneTotal ]"

          Change ça déjà et puis on verra...

          1. Et jipicy arriva !
            Je ne suis qu'un jeune padawan en shell à coté de toi !
            Tu m'avais pas mal dépanné il y a quelques mois.
            =o)
            --
            Tøƒ
        Précédent
        • 1
        • 2