สมมติว่ามี 2 งานt1
, t2
ซึ่งสามารถดำเนินการได้ในทางอนุกรมดังต่อไปนี้:
t1 ; t2
# OR
t1 && t2
ตอนนี้สมมติว่าฉันลืมเรียกใช้t2
และt1
กำลังทำงานอยู่ ฉันสามารถเพิ่มt2
ไปยังไปป์ไลน์เพื่อให้สามารถดำเนินการได้หลังจากt1
เสร็จสิ้นหรือไม่
สมมติว่ามี 2 งานt1
, t2
ซึ่งสามารถดำเนินการได้ในทางอนุกรมดังต่อไปนี้:
t1 ; t2
# OR
t1 && t2
ตอนนี้สมมติว่าฉันลืมเรียกใช้t2
และt1
กำลังทำงานอยู่ ฉันสามารถเพิ่มt2
ไปยังไปป์ไลน์เพื่อให้สามารถดำเนินการได้หลังจากt1
เสร็จสิ้นหรือไม่
คำตอบ:
ใช่คุณสามารถ:
fg
หรือ%
เพิ่มสิ่งที่คุณต้องการในรายการและดำเนินการเช่น:
fg ; systemctl suspend # or
% ; systemctl suspend
เนื่องจากfg
ส่งคืนค่าส่งคืนของงานที่ดำเนินการต่อรายการตัวดำเนินการที่ชอบ&&
และ||
ทำงานตามที่คาดไว้:
fg && echo "Finished successfully!" # or
% && echo "Finished successfully!"
man bash
/ JOB CONTROLพูดเกี่ยวกับตัวละครที่ถูกระงับ:
พิมพ์ ระงับ ตัวอักษร (ปกติ
^Z
, Control- Z)bash
ในขณะที่กระบวนการที่กำลังทำงานอยู่สาเหตุที่กระบวนการจะหยุดและผลตอบแทนในการควบคุม (... ) ผู้ใช้อาจจัดการกับสถานะของงานนี้โดยใช้bg
คำสั่งเพื่อดำเนินการต่อในพื้นหลังfg
คำสั่งเพื่อดำเนินการต่อในเบื้องหน้าหรือkill
คำสั่งเพื่อฆ่ามัน A มี^Z
ผลทันทีและมีผลข้างเคียงเพิ่มเติมที่ทำให้เกิดผลลัพธ์ที่รอดำเนินการและหัวพิมพ์จะถูกยกเลิก
fg
อธิบายไว้ในman bash
/ คำสั่งเชลล์อาคาร :
fg [ jobspec ]
Resume jobspecในเบื้องหน้าและทำให้งานปัจจุบัน หากjobspecไม่มีอยู่จะใช้แนวคิดของเชลล์ของงานปัจจุบัน ค่าส่งคืนคือคำสั่งที่วางไว้ในส่วนหน้าหรือความล้มเหลวหากรันเมื่อปิดการควบคุมงานหรือเมื่อเปิดใช้งานด้วยการควบคุมงานที่เปิดใช้งานหาก jobspec ไม่ได้ระบุงานที่ถูกต้องหรือjobspecระบุงานที่เริ่มโดยไม่มีการควบคุมงาน .
อ่านเพิ่มเติม (นอกเหนือจากman bash
) ในการควบคุมงาน:
^Z^Z
และ%-;%+;t3
ก็ดีพอในบางกรณี แต่มันก็ยังห่างไกลจากการแก้ปัญหาที่แท้จริง
ฉันเห็นวิธีนี้ที่นี่: /superuser/334272/how-to-run-a-command-after-an-already-running-existing-one-finishes
โดยที่คุณทำCtrl+ zเพื่อหยุด (หยุดชั่วคราว) อันดับแรกจากนั้นคุณเรียกใช้คำสั่งที่ไม่ได้รับเช่น: fg && ./missed_cmd.sh
และมันจะทำงานทันทีที่fg
เสร็จสิ้น
fg
(หน้าคำสั่ง) จะนำงานระงับออนไลน์และ&&
จะให้แน่ใจว่าคำสั่งที่ไม่ได้มีการเรียกใช้เฉพาะในกรณีที่คำสั่งแรกประสบความสำเร็จ
t3
ในหรือt1; t2; t3
t1 && t2 && t3