Set environment variable with space in Linux
I want to set an environment variable that has space in it. it is a path to a folder and the folder name is: /home/mehrabib/my video
I edit .bashrc and add the following line to it:
export $VIDEO=/home/mehrabib/my\ video
and run these commands:
echo $VIDEO
cd $VIDEO
the result is:
/home/mehrabib/my video
/home/mehrabib/my :no such file or directory
I change it to
export $VIDEO=/home/mehrabib/my\\\ video
and run these commands:
echo $VIDEO
cd $VIDEO
the result is:
/home/mehrabib/my\ video
/home/mehrabib/my\ :no such file or directory
what should i do?
You should do
export VIDEO="/home/mehrabib/my video"
and to sum Dan's comments up also do
cd "$VIDEO"
which will expand to
cd "/home/mehrabib/my video"
again.
Personally, I've come to prefer the ${VIDEO}
syntax.
You can also substitute special characters - use * as a wildcard to substitute for the space.
VIDEO="/home/mehrabib/m*o"
Try to quote VIDEO
: cd "$VIDEO"
.