Bagaimana cara kembali ke baris script sebelumnya di terminal?

8

Saya mencoba menulis skrip tetapi saya mandek di sini. Tolong lihat kodenya!

aug@august:~/play$ for i in {1..100..4}
> do
> echo "august"
> touch august $i+$2
> mkdir dir

Apakah ada cara untuk melewati baris sebelumnya? Maksud saya ada kesalahan ketik, saya lakukan touch august $i+$2. Saya menekan ENTERkunci, jadi saya mencari jalur baru. Bagaimana saya bisa kembali ke baris sebelumnya?

rɑːdʒɑ
sumber
Anda harus menulis skrip dalam file kemudian menjalankannya dari terminal. Anda juga dapat menggunakan tombol UP untuk perintah sebelumnya, tetapi tidak ada cara untuk mengembalikan perintah.
shantanu

Jawaban:

1

bashEditor baris perintah tidak mendukung ini, baik melakukan seperti yang disarankan anwar atau menyimpan semuanya pada satu baris dipisahkan dengan titik koma atau memasukkannya ke dalam file skrip.

Di samping catatan, zshada fitur yang membantu dengan ini. The zshgaris Editor ( zle) adalah editor yang lebih fitur lengkap dan dukungan yang bergerak dalam perintah multi-line. Ketika perintah menjadi terlalu panjang untuk ditangani di zledalamnya memiliki fitur builtin edit-command-line,, yang membuka baris perintah di editor favorit Anda. Biasanya tidak terikat, coba dengan:

bindkey "^[e" edit-command-line

Alt-e sekarang harus mengaktifkannya, simpan dan berhenti untuk kembali ke baris perintah.

Thor
sumber
1

Setelah Anda menekan Enterdan mendapat pesan kesalahan, Anda bisa kembali ke histori:

Cukup tekan tombol di keyboard Anda untuk memperbaiki kesalahan ketik. Jika Anda menekan tombol, terminal akan menunjukkan baris ini kepada Anda:

for i in {1..100..4}; do echo "august"; touch august $i+$2; mkdir;

Perbaiki hal-hal yang salah ketik di sekitar touch august $i+$2dan tambahkan donedi akhir perintah.

Lalu tekan Entertombol. Ini harus menyelesaikan masalah Anda.

Anwar
sumber
1

seperti yang dijelaskan di sini , dalam bash Anda memiliki Perintah untuk Memanipulasi Sejarah sebagaimana dinyatakan dalam manual itu. Salah satunya adalah edit-and-execute-command.

Ini akan membuka editor Anda dengan perintah Anda sudah diketik dalam file sementara dan Anda dapat memperbaiki baris sebelumnya dengan mudah. Anda dapat mencapai ini dalam mode emacs oleh C-xC-e, dan mode vi dengan menekan vdalam mode normal.

edit-dan-jalankan-perintah (C-xC-e)

Aktifkan editor pada baris perintah saat ini, dan jalankan hasilnya sebagai perintah shell. Bash mencoba memanggil $ VISUAL, $ EDITOR, dan emacs sebagai editor, dalam urutan itu.

kalnar
sumber
Wow. Linux bertahun-tahun, dan saya baru tahu ini.
azzamsa
0

Inilah yang bekerja untuk saya.

CTRL+ Cdari saat ini command. Lalu tekan tombol . Sekarang Anda dapat mengedit baris mana pun yang Anda inginkan dengan berpindah menggunakan arrow buttons- atau .

Semoga berhasil...

Aakash Shah
sumber