อะไรนะ set -T
หมายถึงทุบตี? มันทำอะไร? ฉันเชื่อว่ามันเกี่ยวข้องกับกับดักใน Unix แต่ฉันไม่แน่ใจ
ฉันพบ นี้ :
โครงสร้างหลายอย่างนั้นง่ายขึ้นถ้าเรียกกับกับดัก ในขณะที่เป็นเด็กเบื้องหน้ายังคงทำงาน คุณจะ เพียงติดตั้งตัวจัดการกับดักที่ทำ "สิ่ง" เกี่ยวกับปัญหา และจะถูกเรียกทุกครั้งที่คุณกด SIGINT (หรือ SIGQUIT) เพียงเท่านี้ ตัวจัดการสัญญาณในโปรแกรม C ถูกเรียกใช้โดยไม่ได้ตั้งใจ บางทีฉันก็เหมือนกัน โปรแกรมเมอร์ C มาก แต่ฉันพบพฤติกรรม sh ล่าช้ามาก ไม่ใช่งานง่าย
#! /bin/sh onsig() { trap SIGINT kill -SIGINT $$ } set -T # set async execution of traps on FreeBSD trap onsig SIGINT ./some-blocking-program set +T # set traps execution behaviour back to normal
สิ่งนี้ทำให้ตัวจัดการกับดักซับซ้อนขึ้นเล็กน้อย แต่ก็ช่วยให้คุณ เพื่อเขียนส่วนหลักของเชลล์สคริปต์ของคุณตามปกติโดยไม่ต้องรักษา โปรดทราบว่าโปรแกรมอาจบล็อกและดำเนินการตามความเหมาะสม เกี่ยวกับมัน.