405 Stimmen

' \r ': Befehl nicht gefunden - .bashrc / .bash_profile

Ich habe Windows, verwende Cygwin und versuche, die JAVA_HOME permanent durch mein .bashrc Datei.

.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

Cygwin läuft:

-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'

Ich bin mir nicht sicher, ob ich die Befehle aus einem Tutorial übernommen habe, das für ein anderes System gedacht war, oder ob ich einen Schritt übersehen habe. Oder Leerzeichen führen dazu, dass meine Befehle nicht richtig ausgeführt werden.

Ich habe mir mehrere ähnliche Fragen angesehen, aber ich habe keine gefunden, bei der die Frage genau auf meinen Fehler zutrifft.


Mein Heimweg:

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

Ich glaube also, dass die Dateien an der richtigen Stelle platziert werden sollten.

1voto

Danny Schoemann Punkte 1250

Unter EditPlus Sie tun dies über die Document File Format (CR/LF) Change File Format... und wählen Sie dann das Menü Unix / Mac OS X Optionsschaltfläche.

-2voto

1. Auswahl

EditorConfig EditorConfig - ist meine Wahl.


2. Relevanz

Diese Antwort ist für März 2018 relevant. In Zukunft können die Daten aus dieser Antwort veraltet sein.

Der Autor dieser Antwort verwendet EditorConfig persönlich im März 2018.


3. Beschränkungen

Sie müssen Folgendes verwenden einer der unterstützten IDE/Editoren .


4. Argumentation

  1. Einfacher Gebrauch. Ich muss meine .editorconfig Datei 1 Mal, wo ich mein Projekt erstelle, kann ich vergessen einige plattform-, stil- und IDE-spezifische Probleme .
  2. Plattform-, sprach-, IDE- und editorenübergreifend .

5. Beispiel

5.1. Einfach

I installieren EditorConfig-Plugin für Sublime Text, meinen Texteditor. Ich bearbeite Dateien in Sublime Text.

Ich habe zum Beispiel sashacrlf.sh Datei:

echo "Sasha" &
echo "Goddess!" &

Ich führe diese Datei in Cygwin aus:

$ bash sashacrlf.sh
Sasha
sashacrlf.sh: line 1: $'\r': command not found
Goddess!

Ich erstelle eine Datei .editorconfig im selben Projekt wie sashacrlf.sh .

[*.sh]
end_of_line = lf

Das bedeutet, dass Sie beim Speichern einer Datei mit .sh Erweiterung in Ihrem Projekt in Ihrem Editor, setzt EditorConfig UNIX-Zeilenenden für diese Datei.

Ich spare sashacrlf.sh in meinem Texteditor wieder. Ich laufe sashacrlf.sh wieder:

$ bash sashacrlf.sh
Sasha
Goddess!

Ich kann keine unerwartete Ausgabe in der Konsole erhalten.

5.2. Mehrere Dateierweiterungen

Ich möchte zum Beispiel UNIX-Zeilenenden in allen Dateien mit den Erweiterungen .sh , .bashrc y .bash_profile . Ich füge diese Zeilen zu meinem .editorconfig Datei:

[*.{sh,bashrc,bash_profile}]
end_of_line = lf

Wenn ich nun eine Datei mit .sh , .bashrc o .bash_profile Erweiterung, setzt EditorConfig automatisch UNIX-Zeilenenden für diese Datei.


6. Zusätzliche Links

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X