Noobshell : c'est quoi mon erreur? - Shell/Batch - Programmation
Marsh Posté le 02-06-2014 à 23:11:54
Il manque juste un fi entre la ligne 12 et la ligne 13 non ?
Marsh Posté le 03-06-2014 à 00:08:45
!
Edit : d'ailleurs, ça te donne pas une erreur à la ligne 15 avec le if ?
Marsh Posté le 07-06-2014 à 12:20:36
Non toujours pas
Pour ceci if [ ! -f $fichier1 ]
je devrais faire if [ "! -f $fichier1" ]? Je ne vois pas bien ou placer ces doubles quotes j'avoue
Marsh Posté le 07-06-2014 à 12:27:57
Identifiant non valable ligne 3
Ligne 20 erreur de syntaxe pres du elif
Marsh Posté le 08-06-2014 à 11:22:11
Thaybow7 a écrit : Non toujours pas |
Pour les quotes, il faut faire ceci :
Code :
|
Cela te permet de protéger le contenu de ta variable, et d'éviter les erreurs si celles-ci n'est pas valorisées
Par contre, dans ce cas d'un test sur égalité, tu dois aussi tester que la valeur n'est pas nulle
Marsh Posté le 08-06-2014 à 11:57:44
Thaybow7 a écrit : Identifiant non valable ligne 3 |
Ta ligne 3 c'est bien cette ligne ?
Code :
|
Parce qu'elle est correcte normalement
Et même ta ligne 20 avec le elif est correcte
Marsh Posté le 09-06-2014 à 12:43:27
Ben ouais, j'ai débuggé et j'en suis revenu au début du script avec la conclusion que la commande read chez moi à un souci.
J'ai remarqué ça pour les autres scripts que j'ai écrit.
Je comprends vraiment pas le problème.
Je suis sous vmware...ça peut être la source du problème?
J'ai perdu une semaine à me prendre la tête et maintenant je suis bien à la bourre
Marsh Posté le 09-06-2014 à 13:11:28
Thaybow7 a écrit : Ben ouais, j'ai débuggé et j'en suis revenu au début du script avec la conclusion que la commande read chez moi à un souci. Je comprends vraiment pas le problème. Je suis sous vmware...ça peut être la source du problème? |
Tu utilises VMWare ? Ça veut donc dire que tu émules un Linux non ? Il n'y aurait pas un problème de copier-coller quelquefois entre un Windows et un Linux ? Je pense surtout au niveau des sauts de lignes par exemple : j'ai écrit des scripts sous Windows que j'exécutais sous Cygwin, et je me suis rendu compte que je devais faire attention à ce détail
Edit : pour mettre en évidence ceci, fais un "cat -v" de ton script pour voir si tu n'as pas de caractères parasites
Marsh Posté le 09-06-2014 à 13:29:16
Pour voir ce qu'il fait et jusqu'où il va:
Code :
|
Marsh Posté le 09-06-2014 à 13:31:46
Soileh a écrit : |
Aussi, s'il fait des copier/coller d'un script pris sur internet ou dans un .doc sous windows, ça a probablement inséré des sauts de ligne windows.
Marsh Posté le 09-06-2014 à 14:21:52
Pourtant je fais tout sous notepad++ en shell
Mais même le script le plus simple genre
#!/bin/bash
echo "entrez le nom : "
read nom
echo $nom
probleme au niveau du read...
Marsh Posté le 09-06-2014 à 14:40:53
Thaybow7 a écrit : http://s22.postimg.org/lb5ffdxkd/linuxread.jpg |
Comme le dit tuxerman12, c'est un saut de ligne Windows ^_^
Sous Linux, si tu as la commande dos2unix, tu peux l'utiliser pour convertir ton script au format Linux
Edit : ou sous un editeur comme vi, tu peux saisir la commande : 1,$s/^M//g
Marsh Posté le 02-06-2014 à 22:38:47
Bon,
J'aurais besoin de vos lumières car je me casse la tête sur un script sans savoir quelle est mon problème,...faut dire je débute le shell depuis deux jours.
Je sais entrer le nom du premier fichier puis après probleme de synatxe à la ligne 19 avec le elif...
Mais je vois pas pq
Merci pour votre aide.