Bisakah ksh pada AIX dikonfigurasikan untuk menggunakan kunci tab untuk penyelesaian nama file?

8

Saya memiliki beberapa server AIX 7 yang terbatas pada perangkat lunak apa yang dapat saya instal dan bertanya-tanya apakah saya bisa kshmenggunakan tombol tab untuk melengkapi nama file di promosi shell.

Halaman manual jarang untuk ksh dan saya tidak melihat pertanyaan yang relevan di sini yang mencakup tanah ini. Karena sebagian besar pengguna menggunakan ksh, saya ragu untuk menggeser shell saya ke bash - tapi saya rasa itu adalah jalan keluar yang mudah.

Saya masuk awalnya dari PC menggunakan dempul / ssh dan bekerja sebagian besar dari xterm setelah penerusan X11 mengembalikan lalu lintas ke Hummingbird Melebihi pada PC.

Bisakah / usr / bin / ksh yang dikirimkan dengan bos.rte.shelluntuk AIX 7.1 dikonfigurasikan untuk memicu penyelesaian nama file (yang biasanya dipicu dengan menekan ESC + \) dengan menekan tombol TAB?

bmike
sumber
Apa yang dikatakan 'echo $ TERM'?
schaiba
@ schaiba - Terima kasih telah menangkap ungkapan pertanyaan saya yang tidak lengkap. $ TERM saya adalah xterm apakah saya login lebih dari dempul / ssh atau telah melahirkan xterms ...
bmike
Harap sertakan nilai $ {. Sh.version} dalam pertanyaan Anda. TAB ganda untuk penyelesaian nama file ditambahkan relatif terlambat.
Henk Langeveld
@HenkLangeveld Saya mendapatkan kesalahan "substitusi buruk" ketika saya mencoba untuk menggemakan $ {. Sh.version} - Versinya box.rte.shelladalah 7.1.1.16
bmike

Jawaban:

3

Lihat apakah /usr/bin/ksh93tersedia:

ksh93 --version

Jika dikatakan

version         sh (AT&T Research)

kemudian gunakan itu sebagai shell interaktif Anda. Ini akan memiliki $ {. Sh.version} dan harus memiliki ekspansi TAB.

Henk Langeveld
sumber
Ini kemungkinan akan berakhir menjadi jawaban kecuali ada cara yang jelas untuk mengajarkan kshtrik baru yang lama . Tampaknya /usr/bin/kshsengaja tidak diperbarui dengan fitur dan biner kedua memiliki fitur yang lebih baru dikompilasi. Karena tampaknya berfungsi di luar kotak, menekan tab berfungsi seperti yang diharapkan sekarang dengan sedikit risiko skrip lain akan gagal pada perbedaan antara ksh dan ksh93.
bmike
1
Sebenarnya, IBM mungkin mengikuti konsep mengubah nama saat mengubah antarmuka, tidak seperti apa yang Sun lakukan ketika mereka memperbarui ksh ke ksh93 di (Open) Solaris.
Henk Langeveld
4

Saya mengumpulkan shell Anda dalam mode vi. Tidak yakin ini akan berhasil, karena pengetahuan AIX saya terbatas, tetapi Anda dapat mencoba menambahkan ini ke profil Anda:

set -o emacs
bind "^I=complete"

Google mengatakan bahwa ksh di AIX agak lumpuh dari sudut pandang ini, jadi mungkin bash akan menjadi taruhan yang lebih baik.

schaiba
sumber
Ini tidak berfungsi baik dalam versi ksh yang saya instal. Saya lebih suka vibinding, tetapi beralih ke emacs untuk melihat apakah ini akan membiarkan tombol tab berfungsi seperti yang diharapkan.
bmike
bind hilang untuk saya di AIX 7.1
Bryce Guinta
3

Ada alternatif untuk pertanyaan ini.

Mode vi pertama yang diatur untuk ksh:

$ set -o vi

Setelah itu, Anda bisa menggunakan Tabkunci dengan cara ini. Contoh: Anda ingin menyelesaikan jalur berikutnya:

$ cd /usr/local/s

Ketikkan Tabkunci dua kali dan Anda akan melihat ini:

$ cd /usr/local/s
1) sbin/
2) share/
3) src/

Dengan asumsi Anda ingin opsi 2( /usr/local/share/folder), ketik 2 Tab( 2kunci diikuti oleh Tabkunci). Dan Anda akan melihat ini:

$ cd /usr/local/share/ 
Lujus
sumber