384 votes

Cygwin - ' \r ' : commande non trouvée - .bashrc / .bash_profile

J'ai Windows, qui utilise Cgywin, et j'essaie de définir JAVA_HOME de façon permanente par le biais de mon système d'exploitation. .bashrc fichier.

.bashrc :

export PATH="$JAVA_HOME/bin:$PATH"  
export JAVA_HOME=$JAVA_HOME:"/cygdrive/c/Program Files (x86)/Java/jdk1.7.0_05"

.bash_profile :

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

en exécutant cygwin :

-bash: $'\377\376if': command not found
-bash: $'then\r': command not found
: No such file or directorysu//.bashrc
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: syntax error near unexpected token `fi'
-bash: /cygdrive/c/Users/jhsu//.bash_profile: line 3: `fi'

Je ne sais pas si j'ai repris les commandes d'un tutoriel destiné à un autre système ou si je manque une étape. Ou bien les espaces blancs font que mes commandes ne s'exécutent pas correctement.

J'ai examiné de nombreuses questions similaires, mais je n'en ai pas trouvé une où la question correspondait exactement à mon erreur.

Merci

EDIT #1 :

mon chemin de retour

$ echo $HOME
/cygdrive/c/Users/jhsu

Je pense donc que les fichiers devraient être placés au bon endroit.

EDIT #2 :

echo ~

$ echo ~
/cygdrive/c/Users/jhsu/

0 votes

Qu'est-ce que echo ~ donner ?

0 votes

$ echo ~ /cygdrive/c/Users/jhsu/

8 votes

Le problème n'est pas spécifique à cygwin -- le même problème peut se produire si l'on crée un script sur une machine DOS et que l'on effectue un transfert binaire vers un système Linux pour l'y exécuter ; j'ai retiré la référence à cygwin du titre afin que les personnes ayant ce problème dans d'autres circonstances soient plus susceptibles de prendre la question (et ses réponses non spécifiques à Cygwin) au sérieux.

8voto

Faiz Ahmed Points 126

Vous avez peut-être utilisé notepad++ pour créer/mettre à jour ce fichier.

EOL(Edit->EOL Conversion) La conversion par défaut est Windows.

Modifier la conversion EOL dans Notepad++

Edit -> EOL Conversion -> Unix (LF)

5voto

Dominique Mathieu Points 104

Résolu avec Notepad++ :

1) Menu->Edition->Conversion EOL -> Format Unix/OSX

2) Puis sauvegarder

Correction de

4voto

viru Points 159

Les personnes qui utilisent notepad++ (6.8.1) pour transférer des scripts shell de Windows à Linux.

Définissez les paramètres suivants dans le bloc-notes ++. Edition -> Conversion EOL -> Format Unix/OSX

3voto

israel Points 21

J'ai eu le même problème. Solution : J'édite le fichier avec l'éditeur pspad, et lui donne un format unix (Menu - Format -> UNIX)

Je pense que vous pouvez définir ce format pour votre fichier avec de nombreux autres éditeurs.

3voto

user2548343 Points 601

Pour les utilisateurs d'Emacs :

  1. Ouvrir le fichier
  2. M-x set-buffer-file-coding-system (système de codage des fichiers tampons)
  3. Sélectionnez "unix".

Ceci mettra à jour les nouveaux caractères dans le fichier pour qu'ils soient de style unix. Plus d'informations sur la "représentation des nouvelles lignes" dans Emacs peuvent être trouvées ici :

http://ergoemacs.org/emacs/emacs_line_ending_char.html

Note : Les étapes ci-dessus pourraient être transformées en un script Emacs si l'on préfère l'exécuter à partir de la ligne de commande.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X