Fitur bash autocomplete tampaknya tidak berfungsi dengan variabel lingkungan di 11.04. Perilaku saat ini ditunjukkan di bawah ini
export SCRIPT=/home/user/script
cd $SCRIPT/<tab>
hasil dalam backslash ( \
) ditambahkan sebelum $SCRIPT
yaitu prompt menjadi
cd \$SCRIPT/
Hal yang sama terjadi jika cd
diganti dengan ls
atau perintah lainnya
Juga, jika ada file yang dapat dieksekusi di jalur yang terkandung dalam $ SCRIPT dan saya ingin menjalankannya
$SCRIPT/<tab>
Bash tidak menunjukkan opsi di dalam folder (terlepas dari apakah ada satu file atau beberapa file / direktori di dalam path yang terdapat dalam variabel lingkungan).
Dengan kata lain, autocomplete tidak berfungsi dengan variabel lingkungan.
11.04
bash
environment-variables
nilchat
sumber
sumber
Jawaban:
Bug ini diperkenalkan di bash 4.2. Ada utas panjang tentang hal itu di sini:
http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html
Singkatnya, Chet Ramey, pengembang bash, belum yakin bagaimana cara memperbaikinya.
sumber
Untuk mendapatkan kembali behaivior lama, gunakan perintah
atau memasukkannya ke dalam
.bashrc
Jika Anda menggunakan .bashrc yang sama dengan versi bash yang berbeda, gunakan
sumber
Solusi yang disarankan di http://lists.gnu.org/archive/html/bug-bash/2011-02/msg00274.html adalah:
<Tab>
untuk melengkapi secara otomatis variabel lingkungan Anda seperti yang dikatakan baris perintahcd $MYVAR
<Esc>
+<Ctrl>-E
untuk memperluas baris perintah saat ini yaitu gantikan$MYVAR
dengan nilainya, path/
lalu nikmati<Tab>
pelengkapan otomatis seperti biasaIni mengasumsikan Anda berada dalam mode emacs (
set -o emacs
) dan telahbash_completion
mengatur dengan masuk akal untukcd
(misalnyacomplete -o nospace -F _cd cd
).Sayangnya ini tidak berfungsi dalam mode vi (
set -o vi
) karena perluasan baris perintah tidak tersedia saat itu.sumber
Setelah mengetikkan variabel shell
ketik Cntrl-Alt-E. Ini memperluas variabel
Ini bekerja dengan EDITOR = vi di Fedora 16.
sumber