'\r': command not found - .bashrc / .bash_profile

bash, cygwin, newline, shell

Solution

When all else fails in Cygwin...

Try running the `dos2unix` command on the file in question.

It might help when you see error messages like this:

`-bash: '\r': command not found`

Windows style newline characters can cause issues in Cygwin.

The `dos2unix` command modifies newline characters so they are Unix / Cygwin compatible.

CAUTION: the dos2unix command modifies files in place, so take precaution if necessary.

If you need to keep the original file, you should back it up first.

Note for Mac users: The `dos2unix` command does not exist on Mac OS X.

Check out this answer for a variety of solutions using different tools.

There is also a `unix2dos` command that does the reverse:

It modifies Unix newline characters so they're compatible with Windows tools.

If you open a file with Notepad and all the lines run together, try `unix2dos filename`.

Problem

I have windows, using Cygwin, trying to set `JAVA_HOME` permanently through my `.bashrc` file. .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 ``` running 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' ``` I am not sure if I took the commands from a tutorial that was meant for another system or if I am missing a step. Or whitespace is causing my commands not to run properly. I've looked at multiple similar questions but I haven't found one where the question has my error exactly. My home path: ``` $ echo $HOME /cygdrive/c/Users/jhsu $ echo ~ /cygdrive/c/Users/jhsu/ ``` So I believe the files should be placed in the correct spot.

Original source

Related problems