Ini masalah waktu: bash meluncurkan hello
perintah di latar belakang, kemudian menampilkan prompt untuk membiarkan Anda memasukkan perintah baru, lalu perintah latar belakang mencetak beberapa output. Ketika Anda memasukkan baris perintah berikutnya (baris perintah kosong, jika Anda hanya menekan Enter), bash menampilkan pemberitahuan bahwa pekerjaan latar belakang telah selesai, maka prompt berikutnya.
Anda mungkin ingin bereksperimen dengan skrip yang dimulai dengan sleep 3
dan mulai mengetik tepat setelah meluncurkan skrip di latar belakang, untuk melihat apa yang terjadi pada kecepatan yang dapat Anda ikuti.
Anda dapat membuat bash segera memberi tahu Anda ketika pekerjaan latar belakang berakhir dengan mengatur notify
opsi set -b
. Maka Anda akan melihat:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
Bash tidak menggambar ulang prompt dalam hal ini. Anda masih mengedit baris perintah pada baris prompt yang muncul sebelum pekerjaan latar belakang dicetak hello world!
. Anda dapat menggambar ulang garis saat ini dengan menekan Esc 1 Ctrl+ L. Anda mungkin ingin mengikat perintah redraw-current-line
ke kunci yang lebih nyaman; misalnya, agar Ctrl+ Lmenggambar ulang garis saat ini dan Ctrl+ Alt+ Lmenghapus layar, tambahkan baris berikut ke Anda ~/.inputrc
:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
Saya tidak tahu cara membuat bash menggambar ulang baris prompt secara otomatis. Zsh melakukannya secara default.