มันเป็นเรื่องของเวลา: bash เปิดใช้hello
คำสั่งในพื้นหลังจากนั้นจะแสดงพรอมต์ให้คุณป้อนคำสั่งใหม่จากนั้นคำสั่ง background จะพิมพ์เอาต์พุตบางอย่าง เมื่อคุณป้อนบรรทัดคำสั่งถัดไป (บรรทัดคำสั่งว่างเปล่าถ้าคุณกดEnter) bash จะแสดงการแจ้งเตือนว่างานแบ็คกราวน์เสร็จสิ้นจากนั้นจะแสดงพรอมต์ถัดไป
คุณอาจต้องการทดสอบกับสคริปต์ที่เริ่มต้นด้วยsleep 3
และเริ่มพิมพ์หลังจากเปิดตัวสคริปต์ในพื้นหลังเพื่อดูว่าเกิดอะไรขึ้นในจังหวะที่คุณสามารถติดตามได้
คุณสามารถทำให้ทุบตีแจ้งให้คุณทราบทันทีเมื่อสิ้นสุดงานพื้นหลังโดยการตั้งค่าตัวเลือกที่มีnotify
set -b
แล้วคุณจะเห็น:
$ set -b
$ hello &
[1] 12345
$ hello world!
[1]+ Done
Bash ไม่ได้เขียนพรอมต์ใหม่ในกรณีนี้ hello world!
คุณยังคงแก้ไขบรรทัดคำสั่งในบรรทัดที่พรอมต์ที่ปรากฏออกมาก่อนงานพื้นหลังที่พิมพ์ คุณสามารถวาดเส้นในปัจจุบันโดยการกด+Esc 1 Ctrl Lคุณอาจต้องการผูกคำสั่งredraw-current-line
กับคีย์ที่สะดวกกว่า ตัวอย่างเช่นหากต้องการCtrl+ Lวาดใหม่บรรทัดปัจจุบันและCtrl+ Alt+ Lล้างหน้าจอให้เพิ่มบรรทัดต่อไปนี้ใน~/.inputrc
:
"\C-l": redraw-current-line
"\e\C-l": clear-screen
ฉันไม่รู้วิธีทำให้ bash redraw บรรทัดพรอมต์โดยอัตโนมัติ Zsh ทำตามค่าเริ่มต้น