输入存储在变量中的路径时如何省略字符$?

yod*_*ode 4 bash cd-command variable

我有一个经常使用的目录。假设它是:

/etc/insserv.conf.d/testname
Run Code Online (Sandbox Code Playgroud)

我在我的中设置了一个变量/root/.bashrc

mydir=/etc/insserv.conf.d/testname  
Run Code Online (Sandbox Code Playgroud)

现在,我可以通过这个命令打开这个目录

cd $mydir
Run Code Online (Sandbox Code Playgroud)

但我真的不喜欢那个角色$。有什么解决方法可以实现这个吗?我的意思是:我只想通过 来打开这个目录cd mydir,在 中可以Ubuntu 16.04吗?

jim*_*mij 10

您正在寻找cdable_vars选项。shopt -s cdable_vars如果您使用的是 bash(setopt cdablevars在 zsh 的情况下),请运行它来激活它。之后,简单的cd mydir工作。

请注意,如果您尝试cd mydir从包含同名文件或目录的目录中访问,则 shell 将尝试使用当前目录中的文件或目录对象,而不是扩展变量。


ImH*_*ere 5

怎么样只是:

mydir
Run Code Online (Sandbox Code Playgroud)

只需像您已经完成的那样定义变量并创建一个函数:

mydir=/etc/insserv.conf.d/testname
mydir(){ cd "$mydir"; }
Run Code Online (Sandbox Code Playgroud)

完毕。

另一种方法是使用别名:

alias mydir='cd "$mydir"'
Run Code Online (Sandbox Code Playgroud)