Como eu restauro a conclusão de abas nas variáveis da shell na linha de comando do bash?

3

Eu defini meus diretórios mais recentes para as variáveis shell d1, d2, etc.

Em uma antiga máquina do Fedora eu poderia digitar um comando como

$ cp $ d1 /

e o shell substituiria $ d1 por texto como / home / acctname / projects / blog / e então mostre-me o conteúdo de ... / blog, como você esperaria que qualquer conclusão de tabulação fizesse.

Agora, tanto o ubuntu wheezy / sid quanto o fedora 16 apenas \ -capa o '$', e naturalmente não há conclusões para mostrar.

Você pode ver esse comportamento em ação em uma janela do Terminal OSX. No 10.8, faça algo como

ls $ HOME / para ver o que quero dizer.

Existe uma variável ou opção do shell bash que pode restaurar o velho comportamento?

man bash sugere que isso é um erro:

   complete (TAB)
          Attempt  to  perform  completion  on  the  text  before  point.  Bash
          attempts completion treating the text as  a  variable  (if  the  text
          begins  with  $),  username (if the text begins with ~), hostname (if
          the text begins with @), or command (including aliases and functions)
          in  turn.   If none of these produces a match, filename completion is
          attempted.

Eu recebo a conclusão descrita acima quando um token começa com '~' ou uma letra. Está apenas '$' - conclusão que está quebrada.

    
por Eric 24.10.2012 / 23:56

2 respostas

8

A partir do bash 4.2, esse comportamento é governado por

shopt -s direxpand # enable
shopt -u direxpand # disable

Consulte o link para obter informações básicas.

    
por 26.10.2012 / 02:39
0

Não tenho certeza se você está solicitando uma solução no seu Mac ou para * nix. Se você estiver perguntando sobre como alterar seu Mac, eu acabei de ler este tutorial simples para atualizar meu bash OSX de

GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
Copyright (C) 2007 Free Software Foundation, Inc.

para

GNU bash, version 4.3.42(1)-release (x86_64-apple-darwin15.0.0)
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
    
por 21.01.2016 / 21:08