สิ่งนี้ไม่ควรเกิดขึ้น เมื่อคุณรันคำสั่งในแบ็คกราวน์แบ็คกราวน์เพียงแค่พิมพ์หมายเลขงานและ pid (ดูด้านล่าง) จากนั้นกลับไปที่พรอมต์คำสั่ง
เหตุผลเดียวที่ฉันรู้ว่านำไปสู่การทุบตีที่จะทำให้คุณมีบรรทัดใหม่ในสถานการณ์นี้คือถ้าคำสั่งของคุณไม่มีอยู่จริงเพราะมันจะให้ข้อความแสดงข้อผิดพลาดหลังจากพิมพ์ PS1:
$ nonexistant_command &
[1] 13856
$
nonexistant_command: command not found
<empty line with blinking cursor here>
ไม่ว่าจะเกิดจากสาเหตุใดก็ตามการกด Enter ขณะที่อยู่ในบรรทัดว่างนี้ควรพิมพ์บรรทัดใหม่ด้วยข้อความแจ้งตามปกติของคุณ (และอาจเป็นข้อความที่งานที่คุณเพิ่งวางไข่เสร็จแล้วดูด้านล่าง)
ผลลัพธ์เพิ่มเติมที่คุณเห็นคือการทุบตีบอกคุณเกี่ยวกับงานพื้นหลังปัจจุบัน:
ก่อนอื่นจะบอกหมายเลขงานปัจจุบันของกระบวนการพื้นหลังที่สร้างขึ้นใหม่พร้อมกับ pid ดังนี้
$ some_command &
[1] 1234
ซึ่งหมายความว่าคำสั่ง some_command
กำลังรันด้วย pid 1234 เป็นงาน 1
เมื่องานแบ็คกราวด์เสร็จสิ้น bash จะแจ้งให้คุณทราบในครั้งต่อไปที่มันพิมพ์พรอมต์คำสั่ง (ไม่ว่าจะเป็นเพราะคุณได้ทำโพรเซสพื้นหลังอีกกระบวนการให้รันคำสั่งในเบื้องหน้าหรือกด Enter ด้วยบรรทัดคำสั่งว่าง) ข้อความเช่นนี้:
[1] Done some_command
ซึ่งหมายความว่างานที่มีหมายเลข 1 ซึ่งทำงาน some_command
เสร็จสิ้นแล้ว
หากต้องการค้นหาว่างานทุบตีพื้นหลังใดที่กำลังติดตามอยู่คุณสามารถใช้ jobs
builtin เช่นนั้น:
$ jobs
[1] Running some_command &
[2] Running some_other_command &
เพื่อนำงานไปสู่เบื้องหน้าคุณสามารถใช้ fg
:
$ fg 2
some_other_command
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ลอง help jobs
<return>
อีกครั้งหรือไม่ คุณได้รับพรอมต์หรือไม่?