Bagaimana cara menginput / memulai baris baru di terminal bash?

11

Saya perhatikan beberapa bash sampel untuk loop tersebar di beberapa baris dalam contoh

for VARIABLE in file1 file2 file3
do
    command1 on $VARIABLE
    command2
    commandN
done

(mis. di sini http://www.cyberciti.biz/faq/bash-for-loop/ ) Bagaimana cara saya memasukkan baris baru di terminal bash (saya menggunakan dempul)? Ketika saya menekan enter di akhir baris sistem mengeksekusi itu.

giorgio79
sumber
1
Juga di bashAnda dapat menggunakan kombinasi keyboard Ctrl + x + euntuk membuka isi dari command prompt dalam editor seperti vim di mana Anda dapat bekerja pada lebih mudah, ketika Anda sudah selesai Anda dapat keluar dari editor dan perintah akan dijalankan.
slm
Jawaban terkait: unix.stackexchange.com/questions/232912/…
Kusalananda

Jawaban:

28

Saat Anda menekan Enterdi akhir:

for VARIABLE in file1 file2 file3

Shell tidak dapat menjalankan apapun karena forloop itu belum selesai. Jadi sebagai gantinya, itu akan mencetak prompt yang berbeda, $PS2prompt (umumnya >), sampai Anda memasuki penutupan done.

Namun, setelah >ditampilkan, Anda tidak dapat kembali mengedit baris pertama.

Atau, alih-alih mengetik Enter, Anda bisa mengetik Ctrl-VCtrl-J. Dengan begitu, karakter baris baru (alias ^J) dimasukkan tanpa buffer saat ini diterima , dan Anda kemudian dapat kembali mengedit baris pertama nanti.

Di zsh, Anda dapat menekan Alt-Enteratau EscEnteruntuk memasukkan karakter baris baru tanpa menerima buffer saat ini. Untuk mendapatkan perilaku yang sama bash, Anda dapat menambahkan ke ~/.inputrc:

"\e\C-m": "\026\n"

( \026menjadi ^Vkarakter).

Stéphane Chazelas
sumber
Ctrl-Juntuk memulai, dan Ctrl-Duntuk menyelesaikan, akhirnya bekerja dengan baik untuk saya.
DuckMaestro