+/- หลังจากงานในพื้นหลังเสร็จสิ้น


21

รันงานในพื้นหลัง

$ command &

เมื่อเสร็จสิ้นเครื่องจะพิมพ์ออกมา

[n]+    command

หรือ

[n]-    command

ดังนั้นบางครั้งมันเป็นบวกและครั้งอื่น ๆ [n]มันเป็นดังต่อไปนี้ลบ

บวก / ลบหมายความว่าอย่างไร

คำตอบ:


19

พวกเขาจะแยกแยะระหว่างงานปัจจุบันและงานก่อนหน้า; งานสุดท้ายและงานสุดท้ายอันดับสองสำหรับงานมากกว่าสองงานโดยงาน+ล่าสุดและ-งานที่สองล่าสุด

จากman bash:

%-งานก่อนหน้านี้อาจจะใช้อ้างอิง หากมีเพียงงานเดียว%+และ%-ทั้งคู่สามารถใช้เพื่ออ้างถึงงานนั้น ในการส่งออกที่เกี่ยวข้องกับงาน (เช่นการส่งออกของคำสั่งงาน) งานปัจจุบันถูกตั้งค่าสถานะเสมอกับและงานก่อนหน้านี้ด้วย+ -

ตัวอย่าง:

$ sleep 5 &
[1] 21795

$ sleep 5 &
[2] 21796

$ sleep 5 &
[3] 21797

$ sleep 5 &
[4] 21798

$ jobs
[1]   Running                 sleep 5 &
[2]   Running                 sleep 5 &
[3]-  Running                 sleep 5 &
[4]+  Running                 sleep 5 &

$ 
[1]   Done                    sleep 5
[2]   Done                    sleep 5
[3]-  Done                    sleep 5
[4]+  Done                    sleep 5

2

$jobsฉันคาดเดาคุณหมายถึงเมื่อคุณตรวจสอบงานผ่านทาง อย่างไรก็ตามอย่างที่คุณอาจรู้อยู่แล้วnแสดงว่า job # [n] +หมายถึงงานสุดท้ายที่ถูกเรียกว่า [n] -หมายถึงงานที่สองถึงงานสุดท้ายที่ถูกเรียก

ตัวอย่างเช่น:

chris@chris-VirtualBox:~$ sleep 30 &
[1] 904
chris@chris-VirtualBox:~$ sleep 50 &
[2] 972
chris@chris-VirtualBox:~$ jobs
[1]-  Running                 sleep 30 &
[2]+  Running                 sleep 50 &

นั่นคือเหตุผลในกรณีนี้เราsleep 50 &เป็นคนสุดท้าย: [2]+และsleep 30 &เป็นคนที่สองรอง:[1]-


รายละเอียดของคุณเกี่ยวกับสถานการณ์ไม่ชัดเจนและระบบไม่คาดการณ์ว่างานใดจะสิ้นสุดลงก่อน
Julie Pelletier

ฉันเห็นสิ่งที่คุณหมายถึงฉันจะเน้นประเด็นหลัก
Klamz
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.