Use o recurso de caminho de preenchimento automático do terminal para inserir um script de shell

8

Quero criar um script que: (1) obtenha um caminho que permita ao usuário usar a guia para o preenchimento automático, depois (2) obtenha um nome de arquivo do usuário e (3) crie um arquivo nesse caminho com extensão. TXT.

Minha pergunta é: Como faço para 1.? Como eu digo ao bash para solicitar uma entrada que seja um caminho "autocompletável", de preferência com parte do caminho (digamos ~ / x /) já preenchida por padrão?

Nota: os caminhos quase sempre incluem espaços.


fonte

Respostas:

15
read -p "enter a directory: " -i "$HOME/x/" -e path

Em uma sessão do bash, insira help read|less

Glenn Jackman
fonte
Obrigado! No osx, recebo este erro: "-bash: read: -i: opção inválida read: use: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...] "Isso é uma coisa osx?
Ele funciona no Debian, que é onde eu pretendo usá-lo. :)
você provavelmente tem uma versão mais antiga do bash no seu mac:echo $BASH_VERSION
glenn jackman
2
A -ibandeira foi adicionada em bash4.0. help '[r]ead'para obter ajuda readapenas. Observe que, embora read -epossa concluir por dentro ~, ele não será expandido.
Stéphane Chazelas
2
Isso significa que você obterá o til literal na variável $ path, o que pode ser difícil de manusear. Em retrospectiva, use-i "$HOME/x/"
glenn jackman