Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > Unix > BSD
BSD Forum d'entraide sur les systèmes BSD. Avant de poster -> FAQ BSD et cours BSD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 22/04/2009, 16h54   #1
Invité régulier
 
Inscription : septembre 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 22
Points : 6
Points : 6
Par défaut command not found bash sur freebsd

Bonjour,

Je suis en train d'implémenter un import vers une base de données mysql à partir d'un fichier texte.

Je souhaite donc lire le fichier texte ligne par ligne afin de lancer une requête pour chaque ligne.
Mais j'en suis très loin. En effet, je n'arrive pas à lire mon fichier.
Aprés plusieurs tests je me retrouve toujours avec des command not found ou des No such file or directory.

Voici ce que je pensais utiliser pour lire ligne par ligne mon fichier :
Code :
1
2
3
4
while read line
do 
	echo -e "${line} \n"
done < fichier.txt
Après execution je me retrouve avec :

Code :
1
2
3
4
: command not found
: command not found
: No such file or directory7.tit
: command not found
Si quelqu'un peut m'aider à résoudre ce problème ainsi que me donner des conseils sur le dev via bash je suis preneur !

OS : FreeBSD 6.4
Bash 3.2
Ju.Pryz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/04/2009, 22h02   #2
Membre chevronné
 
Inscription : avril 2007
Messages : 665
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2007
Messages : 665
Points : 793
Points : 793
Salut,
Pour debugger ton script tu peux changer la premiere ligne en
Tu auras plus de detail sur ce qu'il se passe (les evaluations des variables etc..). Si cela genere trop de donnees tu peux lancer l'execution dans une session script(1) pour lire tranquille plus tard.

Sinon tu peux aussi le poster
tonton fred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2009, 09h13   #3
Invité régulier
 
Inscription : septembre 2007
Messages : 22
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 22
Points : 6
Points : 6
Voila le retour :
Code :
1
2
+ $'\r'
: command not found
Donc en gros j'utilise un éditeur qui doit rajouter les \r si je comprends bien.

Si c'est le cas ça risque d'être assez chiant vue que j'édite le sh via notepad++, fichier qui se trouve sur un serveur que j'exécute via putty ...

Merci tonton fred pour l'info du -x
Ju.Pryz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/04/2009, 18h43   #4
Membre chevronné
 
Inscription : avril 2007
Messages : 665
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : avril 2007
Messages : 665
Points : 793
Points : 793
Citation:
Envoyé par Ju.Pryz Voir le message
Voila le retour :
Si c'est le cas ça risque d'être assez chiant vue que j'édite le sh via notepad++, fichier qui se trouve sur un serveur que j'exécute via putty ...
Il me semble (de memoire) que notepad++ peut editer les fichiers en "mode unix" donc avec \n a la place de \n\r. Une autre solution est de passer ton script par dos2unix avant execution (dans /usr/ports/converters/unix2dos)

Citation:
Envoyé par Ju.Pryz Voir le message
Merci tonton fred pour l'info du -x
Bah de rien
tonton fred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/05/2009, 10h29   #5
Rédacteur/Modérateur
 
Avatar de lavazavio
 
Homme
Inscription : décembre 2004
Messages : 1 630
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 30
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : décembre 2004
Messages : 1 630
Points : 1 969
Points : 1 969
Citation:
Envoyé par tonton fred Voir le message
Il me semble (de memoire) que notepad++ peut editer les fichiers en "mode unix" donc avec \n a la place de \n\r. Une autre solution est de passer ton script par dos2unix avant execution (dans /usr/ports/converters/unix2dos)
Windows met à la fin de chaque ligne d'un fichier texte un \r\n, alors que sous Unix, les fins de lignes se terminent seulement par un \n. Comme le dit tonton_fred, avant de lancer ton script, tu dois le mettre au format Unix, avec la commande dos2unix :
Tout simplement.
Tu peux t'apercevoir de ce problème en éditant sous Unix ton script avec Vi par exemple. Tu verras à la fin de chaque ligne ceci : ^M. Cela signifie que ton fichier n'est pas au bon format.
__________________
Rédacteur et Modérateur rubrique Linux
Articles dvp.com
Man pages en français
lavazavio est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 20h00.


 
 
 
 
Partenaires

Hébergement Web