Estou usando o Bash 4.4.
[root@192 ~]# bash --version
GNU bash, version 4.4.19(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2016 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.
[root@192 ~]#
Gostaria de saber se existe alguma maneira de fazer o autocompletar funcionar para nomes de opções. Por exemplo, se eu digitar realpath --re
e seguido por um Tab, ele me ajuda a preencher a parte que falta do nome da opção e eu tenho realpath --relative-to=
.
Se você tiver a conclusão do bash habilitada, as opções de comando já estarão lá para a conclusão dos comandos. Você pode ver muitos scripts e funções usados para esse propósito em algum lugar como
/usr/share/bash-completion
. Pacotes instalados comogit
colocar seus scripts em arquivos/etc/bash_completion.d/
.Ainda pode haver alguns scripts, como
realpath
ouecho
, com conclusão limitada. Para adicionar a conclusão para as opções longas,realpath
você deve usar_longopt
, que é uma função bash para gerar a conclusão, você pode vê-la comtype -a
.Antes de fazer isso, você deve testar se já existe uma conclusão para o que você tenta alterar, com:
que poderia dizer
no completion specification
ou uma regra existente, comocomplete -F _minimal realpath
. A nova regra a substituiria. Portanto, você não deve atribuir cegamente nenhuma função, existente ou personalizada, a muitos comandos. As regras de conclusão já estão lá para os comandos.A alteração está disponível para seu shell atual. Para torná-lo permanente, você deve fazê-
source
lo, por exemplo, viabashrc
.