Bu bir zamanlama meselesidir: bash hellokomutu arka planda başlatır , ardından yeni bir komut girmenize izin vermek için bir komut istemi görüntüler, ardından background komutu bazı çıktılar yazdırır. Bir sonraki komut satırını (boş bir komut satırı, yalnızca düğmesine basarsanız Enter) girdiğinizde , bash arka plan işinin bittiğine dair bildirimi, ardından bir sonraki istemi görüntüler.
sleep 3Takip edebileceğiniz bir hızda neler olduğunu görmek için, komut dosyasını arka planda başlattıktan hemen sonra başlayan ve yazmaya başlayan bir komut dosyasını denemek isteyebilirsiniz .
notifySeçeneği ayarlayarak bir arka plan işi sona erdiğinde bash'ı hemen bilgilendirebilirsiniz set -b. Sonra göreceksiniz:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
Bash bu durumda istemi yeniden çizmez. Hala arka plan işi yazdırılmadan önce görüntülenen bilgi istemi satırında bir komut satırı düzenliyorsunuz hello world!. Esc 1 Ctrl+ Düğmesine basarak geçerli satırı yeniden çizebilirsiniz L. Komutu redraw-current-linedaha uygun bir anahtara bağlamak isteyebilirsiniz ; örneğin, geçerli satırı Ctrl+ Lyeniden çizmek ve Ctrl+ Alt+ Lekranı temizlemek için şu satırları ekleyin ~/.inputrc:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
Bash istemi satırını otomatik olarak yeniden çizmenin bir yolunu bilmiyorum. Zsh bunu varsayılan olarak yapar.