A voir également:
- Messages d'eereurs en shell
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Classic shell windows 11 - Télécharger - Personnalisation
- Messages supprimés whatsapp - Guide
- Dans la messagerie ci-dessous, envoyez un nouveau message à manon (manon@pixmail.org) en mettant en copie nina (nina@pixmail.org) : objet : colis bonjour, votre colis est arrivé. que répond manon ? ✓ - Forum Loisirs / Divertissements
26 réponses
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:06
30 janv. 2008 à 16:06
Bonjour,
il manque un $ dans le tail ?
et pourquoi spécifie un fichier dans le tail ?, il prends ce que lui donne le pipe en entrée non ?
--
Tøƒ
il manque un $ dans le tail ?
et pourquoi spécifie un fichier dans le tail ?, il prends ce que lui donne le pipe en entrée non ?
--
Tøƒ
Ah oui exact merci.
J'ai corrigé et j'obtiens toujours la même phrase d'erreur.
Mon code est celui-ci:
echo `head -$i ficIntermediaire | tail -$i |cut -1,2,3 -d ";"` $quantiteTotale $montant
Sinon pour la fin de fichier, faut-il finir un script shell par une instruction spéciale autre que exit 0 ?
J'ai corrigé et j'obtiens toujours la même phrase d'erreur.
Mon code est celui-ci:
echo `head -$i ficIntermediaire | tail -$i |cut -1,2,3 -d ";"` $quantiteTotale $montant
Sinon pour la fin de fichier, faut-il finir un script shell par une instruction spéciale autre que exit 0 ?
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:16
30 janv. 2008 à 16:16
une autre remarque, pourquoi tu fais tail -$i ?
je suppose qu'en fait, tu veux récupérer la ièeme ligne, donc c'ets un tail -1 qu'il faut faire.
Ton problème vient peut-être également de là car ta commande renvoie plusieur lignes
--
Tøƒ
je suppose qu'en fait, tu veux récupérer la ièeme ligne, donc c'ets un tail -1 qu'il faut faire.
Ton problème vient peut-être également de là car ta commande renvoie plusieur lignes
--
Tøƒ
Je pense que l'erreur vient d'autre part mais je voudrais savoir quelle type d'erreur provoque ce message d'erreur.
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:18
30 janv. 2008 à 16:18
Je pense que le message est levé car la commande echo ne s'effectue pas correctement.
--
Tøƒ
--
Tøƒ
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
EN fait ce i est l'indice d'une boucle for.
Le but de cette commande est d'extraire les champs 1, 2, 3 de la ième ligne d'un fichier.
Donc à chaque tour de boucle le i est différent. Mais à chaque fois le résultat n'est qu'une ligne non?
Le but de cette commande est d'extraire les champs 1, 2, 3 de la ième ligne d'un fichier.
Donc à chaque tour de boucle le i est différent. Mais à chaque fois le résultat n'est qu'une ligne non?
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:21
30 janv. 2008 à 16:21
si tu fais head-$i, tu vas prendre les i première lignes
ensuite le tail -1 va prendre la dernière ligne issues du head.
l'argument du tail correspond aux nombres de lignes en partant de la fin que l'on conserve.
--
Tøƒ
ensuite le tail -1 va prendre la dernière ligne issues du head.
l'argument du tail correspond aux nombres de lignes en partant de la fin que l'on conserve.
--
Tøƒ
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:28
30 janv. 2008 à 16:28
As-tu tester ta ligne head -$i ficIntermediaire | tail -$i |cut -1,2,3 -d ";" dans un xterm ?
en remplacant le i par 1?
je l'ai fait vite fait, et je pense que tu as oublier le -f devant -1 dans le cut
--
Tøƒ
en remplacant le i par 1?
je l'ai fait vite fait, et je pense que tu as oublier le -f devant -1 dans le cut
--
Tøƒ
Oui je viens de m'en apercevoir en effectuant ce test.
Après correction, la commande fonctionne et le message d'erreur reste toujours le même lorsque j'exécute le script.
Après correction, la commande fonctionne et le message d'erreur reste toujours le même lorsque j'exécute le script.
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:31
30 janv. 2008 à 16:31
J'ai écrit un script il n'y pas longtemps qui utilise exactement cette fonction
je recherche ca et je te tiens au courant.
--
Tøƒ
je recherche ca et je te tiens au courant.
--
Tøƒ
Darkito
Messages postés
1191
Date d'inscription
vendredi 7 décembre 2007
Statut
Membre
Dernière intervention
26 mai 2010
545
30 janv. 2008 à 16:37
30 janv. 2008 à 16:37
Je ne vois pas trop d edifférence avec le mien...
Que se passe t'il si tu mets juste head -$i ficIntermediaire | tail -$i |cut -1,2,3 -d ";" dans ton script, avant le echo par exemple ?
--
Tøƒ
Que se passe t'il si tu mets juste head -$i ficIntermediaire | tail -$i |cut -1,2,3 -d ";" dans ton script, avant le echo par exemple ?
--
Tøƒ
Bon voilà j'ai réécrit un script tout propre. Le message d'erreur reste le même.
IL s'agirait d'un oubli de fermeture de `, de " ou d'autre chose.
Je me permets de poster le script entier, si quelqu'un voulait bien le tester chez lui pour voir s'il a le même message d'erreur.
Merci d'avance.
Ce script fait le bilan des ventes de tous les produits d'un magasin.
IL s'agirait d'un oubli de fermeture de `, de " ou d'autre chose.
Je me permets de poster le script entier, si quelqu'un voulait bien le tester chez lui pour voir s'il a le même message d'erreur.
Merci d'avance.
Ce script fait le bilan des ventes de tous les produits d'un magasin.
#! /bin/sh #création de la variable qui contiendra la date courante date_du_jour=`date +"%D` #création du fichier ventesdate_du_jour.txt touch ventes$date_du_jour.txt #écriture des deux premières lignes dans le fichier echo "Etat des ventes du $date_du_jour" >>ventes$date_du_jour.txt echo "Reference NomProduit Prix Quantite Montant" >>ventes$date_du_jour k=0 j=0 tailleTableau=0 #pour i de a nbligneTotal nbLigneTotal=`wc -l ventesJour.txt` while [ i -le nbLigneTotal ] do #regouper ds chaque variable les noms prix reference=`head -$i ventesJour.txt | cut -f1 -d ";"` #verifier reference pas deja prise #tant que pas trouve dans tableau faire while [ tableau[j] -ne $reference ] || [ $j -lt tailleTableau ] do let j=$j+1 done #si j=tailleTableau alors pas trouve et on traite if [ $g -eq $tailleTableau ] then nomProduit=`head -$i ventesJours.txt | cut -f2 -d ";"` prix=`head -$i ventesJour.txt | cut -f3 -d ";"` #regrouper lignes meme produit quantite=`grep $reference ventesJour.txt | wc -l` #calcul de montant let montant=$quantite*$prix tableau[k]=$reference let tailleTableau=$tailletableau+1 let montantTotal=$montantTotal+$montant #ecriture de la ligne echo $reference $nomProduit $prix $quantite $montant fi #sinon alors trouve donc on fait rien let i=$i+1 done #écrire Montant total des ventes du jour : $montantTotal echo "Montant total des ventes du jour :" $montantTotal exit 0
Shargat
Messages postés
4
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
10 février 2008
30 janv. 2008 à 19:23
30 janv. 2008 à 19:23
personne ? C'est surement une erreur toute bête de fermeture de balise mais j'ai beau tout relire je vois pas. Quelqu'un arrive à exécuter?
Merci d'avance
Merci d'avance
Shargat
Messages postés
4
Date d'inscription
samedi 7 avril 2007
Statut
Membre
Dernière intervention
10 février 2008
30 janv. 2008 à 20:19
30 janv. 2008 à 20:19
Okay.
Merci beaucoup.
Je m'occupe de ça.
Merci beaucoup.
Je m'occupe de ça.
J'ai changé tout ça et même quelques autres trucs, toujours le même message d'erreur.
C'est la première fois que j'utilise les tableaux en shell peut-être les ai-je mal utilisés...
Le nouveau script:
C'est la première fois que j'utilise les tableaux en shell peut-être les ai-je mal utilisés...
Le nouveau script:
##!/bin/dm2 #création de la variable qui contiendra la date courante date_du_jour=`date +"%D` #création du fichier ventesdate_du_jour.txt touch ventes$date_du_jour.txt #écriture des deux premières lignes dans le fichier echo "Etat des ventes du $date_du_jour" >> ventes$date_du_jour.txt echo "Reference NomProduit Prix Quantite Montant" >> ventes$date_du_jour #initialisation des vraiables k=0 j=0 i=0 montantTotal=0 #pour i de 1 a nbligneTotal nbLigneTotal=`cat ventesJour.txt | wc -l` while [ $i -le $nbLigneTotal ] do #regouper dans chaque variable les noms prix reference=`head -$i ventesJour.txt | cut -f1 -d ";"` #verifier reference pas deja prise #tant que pas trouve dans tableau faire while [ $tableau[j] -ne $reference ] || [ $j -lt $k ] do let j=$j+1 done #si j=tailleTableau alors pas trouve et on traite if [ $j -eq $k ] then nomProduit=`head -$i ventesJours.txt | cut -f2 -d ";"` prix=`head -$i ventesJour.txt | cut -f3 -d ";"` #regrouper lignes meme produit quantite=`grep $reference ventesJour.txt | wc -l` #calcul de montant let montant=$quantite*$prix tableau[k]=$reference let k=$k+1 let montantTotal=$montantTotal+$montant #ecriture de la ligne echo $reference $nomProduit $prix $quantite $montant fi #sinon alors trouve donc on fait rien let i=$i+1 done #écrire Montant total des ventes du jour : $montantTotal echo "Montant total des ventes du jour : $montantTotal" exit 0
Attendez une seconde, un **** de guillemet était dans la création de la variable date_du_jour.
L'exécution m'affiche des messages d'erreurs plus explicites maintenant je vais les traiter et voir ce ça donne.
Je vous tiens au courant.
Merci.
L'exécution m'affiche des messages d'erreurs plus explicites maintenant je vais les traiter et voir ce ça donne.
Je vous tiens au courant.
Merci.
Bon voilà plus qu'une erreur qui je pense doit être lié à ma syntaxe sur l'utilisation du tableau.
Voici le message d'erreur:
./dm3.sh: line 28: [: [0]: unary operator expected
Peut-être que c'est parce que je n'ai pas initialisé la première case du tableau...
Quelqu'un a une idée?
Je remets le script en ciblant la ligne erreur:
Voici le message d'erreur:
./dm3.sh: line 28: [: [0]: unary operator expected
Peut-être que c'est parce que je n'ai pas initialisé la première case du tableau...
Quelqu'un a une idée?
Je remets le script en ciblant la ligne erreur:
#!/bin/dm2 #création de la variable qui contiendra la date courante date_du_jour=`date +%D` #création du fichier ventesdate_du_jour.txt touch ventes_de_ce_jour.txt #écriture des deux premières lignes dans le fichier echo "Etat des ventes du $date_du_jour" >> ventes_de_ce_jour.txt echo "Reference NomProduit Prix Quantite Montant" >> ventes_de_ce_jour.txt #initialisation des vraiables k=0 j=0 i=0 montantTotal=0 #pour i de 1 a nbligneTotal nbLigneTotal=`cat ventesJour.txt | wc -l` while [ $i -le $nbLigneTotal ] do #regouper dans chaque variable les noms prix reference=`head -$i ventesJour.txt | cut -f1 -d';'` #verifier reference pas deja prise #tant que pas trouve dans tableau faire while [ $tableau[$j] -ne $reference ] || [ $j -lt $k ] <------------------------ do let j=$j+1 done #si j=tailleTableau alors pas trouve et on traite if [ $j -eq $k ] then nomProduit=`head -$i ventesJour.txt | cut -f2 -d ";"` prix=`head -$i ventesJour.txt | cut -f3 -d';'` #regrouper lignes meme produit quantite=`grep $reference ventesJour.txt | wc -l` #calcul de montant let montant=$quantite*$prix tableau[$k]=$reference let k=$k+1 let montantTotal=$montantTotal+$montant #ecriture de la ligne echo "$reference $nomProduit $prix $quantite $montant" >> ventes_de_ce_jour.txt fi #sinon alors trouve donc on fait rien let i=$i+1 done #écrire Montant total des ventes du jour : $montantTotal echo "Montant total des ventes du jour : $montantTotal" >> ventes_de_ce_jour.txt exit 0
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
31 janv. 2008 à 14:03
31 janv. 2008 à 14:03
Est-ce qu'on peut avoir un aperçu de ce que contient "ventesJour.txt"...
Bien sûr:
Ref;nomProduit;prix;qté
8447457;Lot 10 Chemises;7;5
8439991;Classeur levier;6;2
8402060;Perforateur;3;1
8404572;Gomme plastique;1;4
8419837;Ciseaux Soft;5;1
8445115;Papier 500 f.;7;2
8428563;Etiquettes A4;8;1
8453333;Cahier A4 96p.;4;5
8453334;Cahier A4 192p.;5;4
8404572;Gomme plastique;1;3
8456422;Roller bleu;2;5
8456423;Roller rouge;2;2
8441139;Surligneur vert;1;3
401797;Marqueur noir;1;1
8434996;Correcteur;1;6
8447457;Lot 10 Chemises;7;7
8439991;Classeur levier;6;2
8439991;Classeur levier;6;2
8402060;Perforateur;3;1
8453333;Cahier A4 96p.;4;10
8419837;Ciseaux Soft;5;10
8456422;Roller bleu;2;2
8456422;Roller bleu;2;3
8456423;Roller rouge;2;5
8434996;Correcteur;1;2
8447457;Lot 10 Chemises;7;5
8445115;Papier 500 f.;7;1
8453333;Cahier A4 96p.;4;6
8456422;Roller bleu;2;1
8434996;Correcteur;1;3
Ref;nomProduit;prix;qté
8447457;Lot 10 Chemises;7;5
8439991;Classeur levier;6;2
8402060;Perforateur;3;1
8404572;Gomme plastique;1;4
8419837;Ciseaux Soft;5;1
8445115;Papier 500 f.;7;2
8428563;Etiquettes A4;8;1
8453333;Cahier A4 96p.;4;5
8453334;Cahier A4 192p.;5;4
8404572;Gomme plastique;1;3
8456422;Roller bleu;2;5
8456423;Roller rouge;2;2
8441139;Surligneur vert;1;3
401797;Marqueur noir;1;1
8434996;Correcteur;1;6
8447457;Lot 10 Chemises;7;7
8439991;Classeur levier;6;2
8439991;Classeur levier;6;2
8402060;Perforateur;3;1
8453333;Cahier A4 96p.;4;10
8419837;Ciseaux Soft;5;10
8456422;Roller bleu;2;2
8456422;Roller bleu;2;3
8456423;Roller rouge;2;5
8434996;Correcteur;1;2
8447457;Lot 10 Chemises;7;5
8445115;Papier 500 f.;7;1
8453333;Cahier A4 96p.;4;6
8456422;Roller bleu;2;1
8434996;Correcteur;1;3
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
31 janv. 2008 à 14:21
31 janv. 2008 à 14:21
Bon déjà la syntaxe de la lecture d'un élément du tableau s'écrit plutôt comme ça "${tableau[$j]}".
Ensuite, il vaudrait mieux je pense que tu nous donnes l'algorithme de ton script, parce que là c'est assez fiddicile à comprendre (du moins pour ma part) ;-(
;-))
Ensuite, il vaudrait mieux je pense que tu nous donnes l'algorithme de ton script, parce que là c'est assez fiddicile à comprendre (du moins pour ma part) ;-(
;-))