Como omitir o caractere $ ao inserir um caminho armazenado em uma variável?

4

Eu tenho um diretório usado com frequência. Suponha que seja:

/etc/insserv.conf.d/testname

Eu defini uma variável no meu /root/.bashrc :

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

Agora, posso abrir este diretório por este comando

cd $mydir

Mas eu realmente não gosto desse caractere $ . Existe alguma solução pode implementar isso? Quero dizer: eu quero abrir este diretório apenas por cd mydir , é possível em Ubuntu 16.04 ?

    
por yode 25.06.2017 / 14:26

3 respostas

10

Você está procurando a opção cdable_vars . Para ativá-lo, execute shopt -s cdable_vars se você estiver usando bash ( setopt cdablevars no caso de zsh). Depois disso, o cd mydir simples funcionaria.

Observe que, se você tentar cd mydir de um diretório que contenha um arquivo ou diretório com o mesmo nome, o shell tentará usar o objeto de arquivo ou diretório no diretório atual, em vez de expandir a variável.

    
por 25.06.2017 / 14:39
5

Que tal apenas:

mydir

Basta definir a variável como você já fez e criar uma função:

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

Feito.

Uma alternativa é usar um alias:

alias mydir='cd "$mydir"'
    
por 25.06.2017 / 14:44
0

Você deve usar um alias global. Não parece bash suporta, mas funciona muito bem com zsh.

Demonstração

<código>%alias-gasd="bsd"; echo asd < / code > - > < code > bsd < / code >

Instalação

$ sudo apt install zsh

Para obter o mesmo visual que o meu, você deve

  • Instale o Oh My Zsh:

    sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
    
  • Substitua seu tema para agnoster:

    sed 's/^ZSH_THEME=".*"$/ZSH_THEME="agnoster"/' -i .zshrc
    
  • E instale as fontes Powerline para fazer o agnoster funcionar:

    curl https://pastebin.com/raw/nD4DTpuF | bash
    
  • Instale o plug-in de realce de sintaxe:

    • Download

      git clone git://github.com/zsh-users/zsh-syntax-highlighting.git .oh-my-zsh/custom/plugins/zsh-syntax-highlighting
      
    • E aplique:

      sed 's/^plugins=\((.*)\)$/plugins=( zsh-syntax-highlighting)'
      
    • Por fim, recarregue suas configurações:

      source .zshrc
      

Desculpe por este longo tutorial, mas espero que você goste.

    
por 25.06.2017 / 17:02