Utilizzare la funzione del percorso di completamento automatico del terminale per l'input in uno script di shell


8

Voglio creare uno script che: (1) Ottiene un percorso che consente all'utente di utilizzare la scheda per il completamento automatico, quindi (2) ottiene un nome file dall'utente e quindi (3) crea un file in quel percorso con estensione. testo.

La mia domanda è: come posso fare 1.? Come faccio a dire a bash di chiedere input che sia un percorso "autocompletabile", preferibilmente con parte del percorso (diciamo ~ / x /) già compilato di default?

Nota: i percorsi includeranno quasi sempre spazi.

Risposte:


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

Da una sessione bash, entra help read|less


Grazie! Su osx ottengo questo errore: "-bash: read: -i: opzione non valida read: utilizzo: read [-ers] [-u fd] [-t timeout] [-p prompt] [-a array] [-n nchars] [-d delim] [name ...] "È una cosa osx?

Funziona in Debian, dove ho intenzione di usarlo. :)

probabilmente hai una versione precedente di bash sul tuo mac:echo $BASH_VERSION
glenn jackman,

2
La -ibandiera è stata aggiunta in bash4.0. help '[r]ead'per ottenere l'aiuto readsolo. Si noti che mentre read -esarà in grado di completare all'interno ~, non verrà espanso.
Stéphane Chazelas,

2
Significa che otterrai la tilde letterale nella variabile $ path, che potrebbe essere difficile da gestire. Col senno di poi, usa-i "$HOME/x/"
glenn jackman il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.