Como obter o resultado do preenchimento automático do bash como uma string?

4

O que eu estou procurando não é como adicionar autcompletion no bash para outro programa, mas uma maneira de obter o resultado do que teria acontecido no bash para uma string, basicamente:

autocomplete "/etc/apa"

retornaria

/etc/apache2/

para que eu possa usar isso no meu script.

Qualquer ajuda é muito apreciada, pois tudo que posso encontrar é como usar a função bash "complete", que faz algo diferente;)

Felicidades, rafael

    
por xtin 25.03.2013 / 08:20

1 resposta

6

Bash tem um comando interno compgen que pode ajudar muito. Por exemplo, se você quiser saber quais dirs seriam preenchidos automaticamente quando você digitas cd /etc/s<TAB> :

$ compgen -d /etc/s
/etc/security
/etc/sgml
/etc/skel
/etc/ssh
/etc/ssl
/etc/subversion
/etc/sudoers.d
/etc/sysctl.d
$

Em seguida, o comando a seguir diria para qual diretório você entrará por cd /etc/se<TAB> :

$ compgen -d /etc/se
/etc/security
$

compgen pode aceitar a maioria das opções do comando complete . Consulte manual do bash para obter mais detalhes.

    
por 25.03.2013 / 08:37