10
votes

Erreur standard_in dans le script Bash

J'ai deux scripts bash qui sont presque identiques. On travaille et on ne peut pas comprendre ce qui se passe. Voici les scripts:

Celui-ci fonctionne bien: p> xxx pré>

mais celui-ci me donne toutes sortes d'erreurs: p>

Running Unit Tests
------------------

 Test flatroad(standard_in) 1: illegal character: S
(standard_in) 1: syntax error
(standard_in) 1: illegal character: :
(standard_in) 2: illegal character: S
(standard_in) 2: illegal character: :
(standard_in) 2: syntax error
(standard_in) 2: illegal character: N
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: I
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: :
(standard_in) 2: illegal character: O
(standard_in) 2: illegal character: :
(standard_in) 3: illegal character: P
(standard_in) 3: illegal character: :
(standard_in) 3: syntax error
(standard_in) 3: illegal character: M
(standard_in) 3: illegal character: :
(standard_in) 3: illegal character: H
(standard_in) 3: illegal character: :
(standard_in) 3: illegal character: :
(standard_in) 4: illegal character: P
(standard_in) 4: illegal character: :
(standard_in) 4: syntax error
(standard_in) 4: illegal character: M
(standard_in) 4: illegal character: :
(standard_in) 4: illegal character: H
(standard_in) 4: illegal character: :
(standard_in) 4: illegal character: :
(standard_in) 5: syntax error
(standard_in) 5: illegal character: :
(standard_in) 6: illegal character: P
(standard_in) 6: illegal character: :
(standard_in) 6: illegal character: M
(standard_in) 6: syntax error
(standard_in) 6: illegal character: :
(standard_in) 7: syntax error
(standard_in) 7: illegal character: :
(standard_in) 8: illegal character: P
(standard_in) 8: illegal character: :
(standard_in) 8: syntax error
(standard_in) 8: illegal character: M
(standard_in) 8: illegal character: :
(standard_in) 15: syntax error
(standard_in) 16: syntax error
(standard_in) 16: illegal character: M
(standard_in) 16: illegal character: I
(standard_in) 16: illegal character: P
(standard_in) 17: syntax error
(standard_in) 18: illegal character: T
(standard_in) 18: illegal character: S
(standard_in) 18: illegal character: T
(standard_in) 18: syntax error
(standard_in) 19: illegal character: T
(standard_in) 19: illegal character: S
(standard_in) 19: illegal character: T
(standard_in) 19: syntax error
(standard_in) 20: illegal character: T
(standard_in) 20: illegal character: S
(standard_in) 20: illegal character: T
(standard_in) 20: syntax error
(standard_in) 21: illegal character: T
.
.
.
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: O
(standard_in) 90: syntax error
(standard_in) 90: illegal character: P
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: I
(standard_in) 90: illegal character: T
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 91: syntax error
(standard_in) 93: illegal character: S
(standard_in) 93: syntax error
(standard_in) 94: illegal character: O
(standard_in) 94: syntax error
(standard_in) 95: syntax error
(standard_in) 96: illegal character: U
(standard_in) 96: syntax error
(standard_in) 96: illegal character: '
(standard_in) 96: illegal character: O
(standard_in) 96: illegal character: '
                 FAILED.


3 commentaires

Qu'est-ce que vertical ? Qu'est-ce que Earthmove ?


Êtes-vous capable d'exécuter $ curdir / version / vertical seul, avec le fichier plat ? Est-ce que cela produise toutes les mêmes erreurs?


Vertical et Earthmove sont deux programmes C ++. Et oui, exécution "vertical -f platroad.csv" de la ligne de commande fonctionne bien.


3 Réponses :


0
votes

Vérifiez le contenu du répertoire vertical. Est-ce que l'un de vos fichiers CSV a des espaces ou des caractères étranges dans son nom? Essayez d'entourer la variable qui contient un nom de fichier entre guillemets: xxx


2 commentaires

Les seuls fichiers actuellement dans Vertical / UTTT sont à la place de l'arrièreroad.csv et à la place. J'ai essayé votre suggestion et, en plus de toutes les erreurs d'autres erreurs, je reçois maintenant les suivantes: "Test gamble.csv" CAT: / Accueil / Jessica / Documents / Développement / Road / Vertical / UTTES .Res: aucun fichier ou répertoire de ce type "


Quels fichiers sont / home / jessica / documents / développement / route / vertical / utest? Essayez également d'allumer le mode Verbose dans Bash: $ SET -V Vous pouvez l'éteindre avec "SET + V"



11
votes

Les messages d'erreur sont produits par BC . Le problème est qu'il y a quelque chose comme "s: s: n: je :: o: p ..." dans le dossier "$ Home / Documents / Développement / Road / Vertical / UTST.RES" Ce n'est pas dans le fichier correspondant utilisé dans l'autre script. Les chances sont que vous vous attendez à ce que ce fichier contienne une seule valeur numérique au lieu de tout ce qui est là-bas maintenant.


2 commentaires

Flatroad.Res (le seul fichier .res dans le répertoire à l'heure actuelle) ne contient que "0,0" (moins les citations) qui est une seule valeur numérique.


@Jessica: alors la valeur de $ valeur contient quelque chose que bc ne comprend pas.



0
votes

(standard_in) 1: erreur de syntaxe

Cette erreur sera résolue en utilisant perl au lieu de la commande bc,

$ (Perl -e "imprimer $ B + $ C")


0 commentaires