conclusão da guia bash não funciona em shell scripts

0

No meu sistema Fedora 19, a conclusão da guia não funciona para scripts bash quando eu tenho um sh no início da linha de comando, a menos que o nome do arquivo de script termine com .sh .

Ou seja, se eu digitar:

$ sh file<tab>

E o diretório atual contém:

filename
A conclusão da guia

não funciona.

Mas se o diretório atual contiver:

filename.sh

Obras de conclusão.

A conclusão funciona para todo o resto, portanto, suspeito que exista um completer personalizado para comandos que começam com sh e estão procurando arquivos que terminem com .sh .

Existe uma maneira fácil de corrigir isso? Eu quero consertá-lo para o meu usuário, não para todos os usuários, porque eu não quero modificar o sistema operacional.

    
por vy32 17.07.2013 / 13:12

2 respostas

8

Os comandos mais básicos para personalizar suas conclusões em bash são:

  • Para completar apenas .sh arquivos depois (G significa globbing ):

    complete -G '*.sh' sh
    

    Provavelmente isso está em algum lugar em sua configuração (ampla) do sistema. (Você pode verificar com complete -pr , que imprime todas as definições)

  • Para completar qualquer nome do arquivo após sh apenas emitir

    complete -A file sh
    

    -A tem muito mais possibilidades ações (aqui: arquivo ), confira a descrição do complete embutido em man bashbuiltins para muito mais opções .

Para uma correção permanente desse comportamento, coloque o último comando também no seu ~/.bashrc .

    
por 17.07.2013 / 13:32
0

Não, deve haver algo personalizado. Não vi nada disso em qualquer versão do Linux. A conclusão da tabulação funciona conforme o esperado.

A propósito, qual é o ponto

$ sh filename<tab>

disso, de qualquer forma, se você tem "nome do arquivo" em seu diretório?

Talvez você esteja um pouco confuso, como se você tivesse dois nomes de arquivo semelhantes em um diretório, a conclusão só vai até que os caracteres sejam os mesmos e então mostre todas as opções disponíveis.

    
por 17.07.2013 / 13:27