Use la función de ruta de autocompletar de la terminal para ingresar a un script de shell

8

Quiero crear un script que: (1) obtenga una ruta que le brinde al usuario la posibilidad de usar la pestaña para autocompletar, luego (2) obtenga un nombre de archivo del usuario y luego (3) cree un archivo en esa ruta con extensión. TXT.

Mi pregunta es: ¿Cómo hago 1.? ¿Cómo le digo a bash que solicite una entrada que es una ruta "autocompletable", preferiblemente con parte de la ruta (digamos ~ / x /) ya completada por defecto?

Nota: las rutas casi siempre incluirán espacios.


fuente

Respuestas:

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

Desde una sesión de bash, ingrese help read|less

Glenn Jackman
fuente
¡Gracias! En osx obtengo este error: "-bash: read: -i: opción no válida read: use: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [nombre ...] "¿Es esto una cosa de osx?
Funciona en Debian, que es donde planeo usarlo. :)
probablemente tengas una versión anterior de bash en tu mac:echo $BASH_VERSION
glenn jackman
2
La -ibandera fue agregada en bash4.0. help '[r]ead'para obtener la ayuda por readsolo. Tenga en cuenta que si read -ebien podrá completar el interior ~, no se expandirá.
Stéphane Chazelas
2
Significa que obtendrá la tilde literal en la variable $ path, que puede ser difícil de manejar. En retrospectiva, use-i "$HOME/x/"
glenn jackman