Messages d'eereurs en shell
Shargat
-
Shargat -
Shargat -
Bnjour
Voilà, j'ai réalisé un script .sh en shell donc.
Lorsque je lance ma commande, j'obtiens un deux messages d'erreurs sur deux lignes différentes:
./dm.sh : line 60 unexpected EOF while looking for matching ``,
./dm.sh : line 70 : syntax error : unexpected end of file
Ma ligne 60 correspond à ceci:
echo "`head -$i ficIntermediaire | tail -i ficIntermediaire | cut -1,2,3 -d ";"` $quantiteTotale $montant"
et la ligne 72 n'est que la fin de mon script qui se termine par
exit 0.
J'ai du mal à décrypter les erreurs concernée, alors si qqn peut m'aideR.
Merci d'avance.
Voilà, j'ai réalisé un script .sh en shell donc.
Lorsque je lance ma commande, j'obtiens un deux messages d'erreurs sur deux lignes différentes:
./dm.sh : line 60 unexpected EOF while looking for matching ``,
./dm.sh : line 70 : syntax error : unexpected end of file
Ma ligne 60 correspond à ceci:
echo "`head -$i ficIntermediaire | tail -i ficIntermediaire | cut -1,2,3 -d ";"` $quantiteTotale $montant"
et la ligne 72 n'est que la fin de mon script qui se termine par
exit 0.
J'ai du mal à décrypter les erreurs concernée, alors si qqn peut m'aideR.
Merci d'avance.
A voir également:
- Messages d'eereurs en shell
- Classic shell - Télécharger - Personnalisation
- Comment savoir si quelqu'un lit mes messages sur whatsapp - Accueil - Messagerie instantanée
- Comment récupérer les messages supprimés sur whatsapp - Guide
- Google messages - Accueil - Messagerie instantanée
- Messages supprimés whatsapp - Guide
26 réponses
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.
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.
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
#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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 :
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...
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...
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 ;-)