Gunakan fitur jalur lengkapi otomatis terminal untuk input ke skrip shell


8

Saya ingin membuat skrip yang: (1) Mendapat jalur yang memberi pengguna kemampuan untuk menggunakan tab untuk melengkapi otomatis, kemudian (2) mendapatkan nama file dari pengguna, dan kemudian (3) membuat file di jalur itu dengan ekstensi. txt.

Pertanyaan saya adalah: Bagaimana caranya 1.? Bagaimana saya memberi tahu bash untuk meminta input yang merupakan jalur "autocompletable", lebih disukai dengan bagian dari jalan (katakan ~ / x /) sudah diisi secara default?

Catatan: jalan hampir selalu menyertakan spasi.

Jawaban:


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

Dari sesi bash, masukkan help read|less


Terima kasih! Di osx saya mendapatkan kesalahan ini: "-bash: baca: -i: opsi tidak valid baca: penggunaan: baca [-ers] [-u fd] [-t timeout] [-p prompt] [-p prompt] [-a array] [-n] nchars] [-d delim] [name ...] "Apakah ini hal osx?

Ini berfungsi di Debian, di mana saya berencana untuk menggunakannya. :)

Anda mungkin memiliki versi bash yang lebih lama di mac Anda:echo $BASH_VERSION
glenn jackman

2
The -ibendera ditambahkan pada bash4.0. help '[r]ead'untuk mendapatkan bantuan readhanya. Perhatikan bahwa sementara read -eakan bisa menyelesaikan di dalamnya ~, itu tidak akan diperluas.
Stéphane Chazelas

2
Ini berarti Anda akan mendapatkan tilde literal dalam variabel $ path, yang mungkin sulit ditangani. Di belakang, gunakan-i "$HOME/x/"
glenn jackman
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.