Ben*_*min 19 syntax bash tilde-expansion
说我有一个文件夹,名为Foo
位于/home/user/
(我/home/user
也被代表~
).
我想要一个变量
a="~/Foo"
然后呢
cd $a
我明白了
-bash: cd: ~/Foo: No such file or directory
但是,如果我这样做,cd ~/Foo
它工作正常.有关如何使其工作的任何线索?
bmk*_*bmk 25
你可以这样做(在变量赋值期间没有引号):
a=~/Foo
cd "$a"
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,变量$a
不会存储,~/Foo
而是扩展形式/home/user/Foo
.或者您可以使用eval
:
a="~/Foo"
eval cd "$a"
Run Code Online (Sandbox Code Playgroud)
use*_*396 13
您可以使用$HOME
代替波浪号(波形符号由shell扩展为内容$HOME
).例:
dir="$HOME/Foo";
cd "$dir";
Run Code Online (Sandbox Code Playgroud)