Say I have a folder called Foo
located in /home/user/
(my /home/user
also being represented by ~
).
I want to have a variable
a="~/Foo"
and then do
cd $a
I get
-bash: cd: ~/Foo: No such file or directory
However if I just do cd ~/Foo
it works fine. Any clue on how to get this to work?
You can do (without quotes during variable assignment):
a=~/Foo
cd "$a"
But in this case the variable $a
will not store ~/Foo
but the expanded form /home/user/Foo
. Or you could use eval
:
a="~/Foo"
eval cd "$a"
You can use $HOME
instead of the tilde (the tilde is expanded by the shell to the contents of $HOME
).
Example:
dir="$HOME/Foo";
cd "$dir";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With