Score:0

`nohup` ทำงานไม่ถูกต้องกับ `&&`

ธง vn

ฉันต้องการทำให้การดำเนินการในพื้นหลังล่าช้าเพราะฉันใช้ความล่าช้า นอนหลับ [ทุกวินาที] && [การดำเนินการ] สำหรับพื้นหลังที่ฉันใช้ ไม่อัพ

ตัวอย่างง่ายๆของ ไม่อัพ ตามลำพัง:

วันที่ nohup &>> out.log &

และแน่นอนคุณสามารถค้นหาการพิมพ์จากการดำเนินการของ วันที่ ใน out.log.

แต่ฉันต้องการชะลอการดำเนินการเช่น 15 วินาที ดังนั้นการผสมผสานเล็กน้อย:

nohup นอน 15 && วันที่ &>> out.log &

เวลานี้มันทำงานไม่ถูกต้อง นอน15 ถูกประหารชีวิตในขณะที่ วันที่ จะไม่ทำเสมอ - หากคุณปิดเครื่อง เครื่องจะไม่ดำเนินการใดๆ หลังจาก &&.

เกิดอะไรขึ้นกับ ไม่อัพ? มันยอมจำนนต่อ &&??

Score:3
ธง in

ฉันถือว่าคุณอยู่ใน bash ที่ไหน ไม่อัพ เป็นคำสั่งของระบบ (coreutils)

ในการทุบตี && ทำเครื่องหมายจุดสิ้นสุดของ commandline ในกรณีของคุณ ไม่อัพ รับจากเชลล์เฉพาะพารามิเตอร์ นอน15. ส่วนที่เหลือทั้งหมดเป็นคำสั่งถัดไปสำหรับเชลล์

เนื่องจาก ไม่อัพ ไม่ใช่เชลล์ คุณไม่สามารถใช้วงเล็บเพื่อ "ขยาย" พารามิเตอร์ได้ ไม่อัพ, เพราะ ไม่อัพ ไม่สามารถตีความได้และไม่รู้ว่าจะทำอย่างไรกับมัน

ทางออกหนึ่งคือการสร้างสคริปต์ (เช่น นอน) ซึ่งประกอบด้วย นอน 15 && วันที่ และใช้สิ่งนี้เป็นพารามิเตอร์เพื่อ ไม่อัพ:

nohup ./sleepdate &>> out.log &

หรือใช้ทุบตี (ซึ่งสามารถตีความ &&) เป็นพารามิเตอร์ของ ไม่อัพ

nohup bash -c 'sleep 15 && date' &>> out.log &

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา