How to set and use a PATH component with blanks in bash

bashterminal

I have Mathematica 8 installed on my OS X Mountain Lion laptop. I want to set my PATH so that I can run either MathematicaKernel or Mathematica from the command line. To this end I have configured my .bash_profile so that it reads:

$MAC_Mma="/Applications/Mathematica\ Home\ Edition.app/Contents/MacOS/"
export PATH=/opt/local/bin:/Users/comerduncan/newipython/ipython/build/scripts-2.7/:/Users/comerduncan:/Users/comerduncan/Sandbox/sympy/sympy/:$MAC_Mma:$PATH

When the .bash_profile file is read when the terminal is created and I try to execute MathematicaKernel, no such executable is found. However, if I create an alias:

alias math='/Applications/Mathematica\ Home\ Edition.app/Contents/MacOS/MathKernel'

in the .bash_profile file, then when I run math the kernel starts up as usual.

Alas, this alias way does not fit my need in another case where a bash script is run which needs to find the MathematicaKernel in the path. SO, my question is why does the alias way work and my way via the PATH not work?

Best Answer

Stop using backslashes in your variables, and start quoting them.

foo="/path/that/has some spaces"
PATH="$foo":"$PATH"