'\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.
Related problems
- How can I run dos2unix on an entire directory?
- How can I replace each newline (\n) with a space using sed?
- What is wrong with my string substitution using sed on Mac OS X?
- Are shell scripts sensitive to encoding and line endings?
- Windows CRLF to Unix LF Issues in Vagrant
- running bash script in cygwin on windows 7
- Are shell scripts sensitive to encoding and line endings?
- running bash script in cygwin on windows 7