Saya menggunakan, antara lain, bash 4.2.37 di Linux Mint 14.
Saat saya melengkapi nama variabel lingkungan secara otomatis dengan mengetik Tab, nama itu akan diperluas ke nama variabel yang diikuti oleh spasi.
Jika nilai variabel kebetulan menjadi nama direktori, saya ingin itu diperluas ke nama variabel diikuti oleh /
.
Misalnya, jika saya mengetik:
$ ls $HOM<tab>
itu berkembang menjadi:
$ ls $HOME _
di mana _
menandai lokasi kursor. Masalahnya adalah bahwa saya kemudian biasanya ingin terus mengetik nama beberapa file atau direktori di bawah direktori home saya, yang berarti saya harus mengetik backspacedan kemudian /
.
Jadi saya ingin hal di atas meluas ke:
$ ls $HOME/_
Hal yang sama terjadi ketika saya mengetik seluruh nama variabel; setelah itu ls $HOME
, tabtambahkan spasi, dan saya ingin menambahkan /
.
(Dan tentu saja saya tidak ingin menambahkan /
jika nilai variabel bukan nama direktori.)
Apakah ada cara saya dapat memberitahu bash untuk berperilaku seperti yang saya inginkan, baik melalui perintah bash atau dengan memperbarui saya $HOME/.inputrc
?
Catatan: Saya secara khusus mencari cara untuk tabberperilaku seperti yang saya inginkan. Cara untuk mencapai perilaku yang sama dengan penekanan tombol yang berbeda akan menarik, tetapi tidak akan menjawab pertanyaan saya.
(Saya telah menonaktifkan /etc/profile.d/bash_completion.sh
sistem saya karena berinteraksi dengan buruk set -o nounset
. Eksperimen cepat menunjukkan bahwa ini mungkin tidak relevan dengan pertanyaan saya.)
Kebetulan, tcsh melakukan ini: diberi variabel lingkungan $FOOBAR
, pengetikan $FOOBA<tab>
akan diperluas $FOOBAR/
jika merujuk ke direktori, $FOOBAR
(dengan spasi) jika tidak. Tidak, itu tidak cukup untuk membujuk saya untuk kembali ke tcsh. zsh juga melakukan ini.
sumber
Jawaban:
Fitur ini diimplementasikan dalam bash 4.3, dirilis 2014-02-26.
Mengutip
NEWS
file (termasuk di tingkat atasbash-4.3.tar.gz
, lihat juga tanda tangan GPG ):Eksperimen cepat dengan salinan yang dibuat dari sumber menunjukkan bahwa jika saya mengetik
sekarang diperluas ke
(Kebetulan, zsh juga melakukan ini.)
sumber
akan membantu, tidak akan ada ruang sehingga Anda dapat terus mengetik tetapi itu akan menggantikan variabel lingkungan dengan kontennya.
Lihat alsp /programming/6418493/bash-variable-expansion-on-tab-complete
sumber