Posso implementar o preenchimento automático de guias em um script bash?

3

Eu tenho um script que, quando um usuário digita um nome de arquivo em um diretório, executa operações de marcação automática nesse arquivo (marcação de mp3).

Meu problema: é realmente tedioso digitar o nome exato de cada música que eu quero marcar, e eu queria saber se é possível implementar o preenchimento automático de tabulação quando eu inserir o nome de um arquivo.

O começo do meu script:

Nome do arquivo de entrada e arquivo de localização

echo  "Enter name of file to be tagged"
read -e FileName
FileFindTest=$(find ~/Downloads/"$FileName")
echo "$FileFindTest"
    
por Data643 10.10.2013 / 03:04

1 resposta

3

Surpreendentemente (para mim), read faz o autocomplete simples de arquivo / pasta com a opção -e .

Para usá-lo no seu exemplo (notei minhas alterações)

echo  "Enter name of file to be tagged:"

cd ~/Downloads      ## cd to Downloads folder for autocomplete

read -e FileName

FileFindTest="$(find ~/Downloads/"$FileName")"  ## quoted 

echo "$FileFindTest"

Nesse caso, ao solicitar a entrada, ele preencherá automaticamente os arquivos / pastas na pasta "Downloads".

Exemplo, suponha que você tenha os seguintes arquivos na sua pasta "Downloads":

~/Downloads
│
├───Pop/
│   └───PopSong.mp3
├───Song1.mp3
└───Song5.mp3

Então quando você terá os seguintes resultados (pressionando Tab quando <TAB> é mostrado)

P<TAB>
Pop/

S<TAB>
Song1.mp3 Song5.mp3

PopSong.mp3<TAB>
# (nothing found here, as it's searching in Downloads/ only not Pop/)

Pop/P<TAB>
PopSong.mp3
    
por kiri 28.10.2013 / 11:26