Saya ingin menulis perintah terstruktur dalam beberapa baris sebagai
$ for i in *;
→ do
→ file $i;
→ done
bmdt.md: ASCII text
breakfast.md: ASCII text
brmdh.md: ASCII text
test.sh: Bourne-Again shell script text executable, ASCII text
tetapi menemukan tab tidak berfungsi,
Bagaimana saya bisa mengaktifkan tombol tab di konsol bash?
Jawaban:
Ketika Anda menekan Entersetelah memasukkan perintah yang tidak lengkap,
bash
shell akan menampilkan prompt lanjutan (prompt sekunder,$PS2
) dan memungkinkan Anda untuk menyelesaikan perintah yang dimasukkan. Fasilitas pengeditan baris perintah shell pada saat itu sama dengan di prompt asli (prompt utama,$PS1
), yang berarti bahwa Tabkunci akan melakukan perintah dan nama file selesai seperti biasa.Untuk menyisipkan karakter tab, gunakan Ctrl+V Tab, atau gunakan spasi untuk indentasi. Karakter tab (atau karakter literal lainnya) selalu dapat dimasukkan jika diawali oleh Ctrl+V.
Atau, jika dalam mode pengeditan baris perintah Emacs (yang saya yakini sebagai default
bash
), gunakan Ctrl+X Ctrl+Euntuk membuka editor untuk memasukkan perintah Anda. Editor yang digunakan akan menjadi yang ditentukan olehEDITOR
variabel shell / environment, atauemacs
jika variabel ini tidak disetel.Dalam mode pengeditan baris perintah Vi, tekan Escape vuntuk melakukan hal yang sama.
Perintah akan dieksekusi setelah menyimpan dan keluar dari editor.
sumber
set -o vi
dan yang memberi Anda kemampuan untuk menggunakan perintah pengeditan Vi / Vim pada baris perintah, seperti (Esc
)dw
untuk menghapus hingga akhir kata saat ini, dll. Gunakanset -o emacs
untuk kembali ke mode pengeditan baris perintah Emacs.Ctrl+X
Ctrl+E
, shell akan membukanya untuk Anda.