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

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

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

/etc/insserv.conf.d/testname

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

mydir=/etc/insserv.conf.d/testname  

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

cd $mydir

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

答案1

您正在寻找cdable_vars选择。shopt -s cdable_vars如果您使用的是 bash(setopt cdablevars如果是 zsh),请运行它来激活它。之后简单的cd mydir就可以了。

笔记如果您尝试cd mydir从包含同名文件或目录的目录中执行操作,则 shell 将尝试使用当前目录中的文件或目录对象,而不是扩展变量。

答案2

怎么样:

mydir

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

mydir=/etc/insserv.conf.d/testname
mydir(){ cd "$mydir"; }

完毕。

另一种方法是使用别名:

alias mydir='cd "$mydir"'

答案3

您应该使用全局别名。 bash 似乎不支持它,但它与 zsh 配合得很好。

演示

<code>% 别名 -g asd="bsd";回声asd </code> -> <code>bsd</code>

安装

$ sudo apt install zsh

为了获得和我一样的外观,你应该

  • 安装 Oh My Zsh:

    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
  • 替换您的主题以忽略:

    sed 's/^ZSH_THEME=".*"$/ZSH_THEME="agnoster"/' -i .zshrc
    
  • 并安装 Powerline 字体以使 agnoster 工作:

    curl https://pastebin.com/raw/nD4DTpuF | bash
    
  • 安装语法高亮插件:

    • 下载

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
      
    • 并应用:

      sed 's/^plugins=\((.*)\)$/plugins=(\1 zsh-syntax-highlighting)'
      
    • 最后,重新加载您的配置设置:

      source .zshrc
      

很抱歉这个教程太长了,但我希望你会喜欢它。

相关内容