นี่คือคำสั่ง trapposix ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้หนึ่งในเวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
กับดัก — สัญญาณกับดัก
เรื่องย่อ
กับดัก n [สภาพ...]
กับดัก [การกระทำ สภาพ...]
DESCRIPTION
ถ้าตัวถูกดำเนินการแรกเป็นจำนวนเต็มทศนิยมที่ไม่ได้ลงนาม เชลล์จะถือว่าตัวถูกดำเนินการทั้งหมดเป็น
เงื่อนไข และจะรีเซ็ตแต่ละเงื่อนไขเป็นค่าเริ่มต้น มิฉะนั้น ถ้ามี
ตัวถูกดำเนินการ ตัวแรกถือเป็นการกระทำ ส่วนที่เหลือเป็นเงื่อนไข
If การกระทำ is '-', เชลล์จะรีเซ็ตแต่ละอัน สภาพ เป็นค่าเริ่มต้น ถ้า การกระทำ is
โมฆะ ("") เชลล์จะละเว้นแต่ละรายการที่ระบุ สภาพ ถ้ามันเกิดขึ้น มิฉะนั้น
อาร์กิวเมนต์ การกระทำ จะถูกอ่านและดำเนินการโดยเชลล์เมื่อหนึ่งในตัวที่สอดคล้องกัน
เงื่อนไขเกิดขึ้น การกระทำของ กับดัก จะแทนที่การกระทำก่อนหน้า (ทั้งค่าเริ่มต้น
การกระทำหรือชุดใดชุดหนึ่งอย่างชัดเจน) คุณค่าของ "$?" หลังจากที่ กับดัก การดำเนินการเสร็จสิ้นจะเป็น
คุณค่าที่เคยมีมาก่อน กับดัก ถูกเรียก
เงื่อนไขสามารถเป็น EXIT, 0 (เทียบเท่ากับ EXIT) หรือสัญญาณที่ระบุโดยใช้สัญลักษณ์
ชื่อโดยไม่มีคำนำหน้า SIG ตามที่ระบุไว้ในตารางชื่อสัญญาณใน
ส่วนหัวที่กำหนดไว้ในปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008 บท 13, ส่วนหัว; สำหรับ
เช่น HUP, INT, QUIT, TERM การดำเนินการอาจอนุญาตให้ใช้ชื่อที่มีคำนำหน้า SIG หรือ
ละเว้นกรณีในชื่อสัญญาณเป็นส่วนขยาย การตั้งค่ากับดักสำหรับ SIGKILL หรือ SIGSTOP
ให้ผลลัพธ์ที่ไม่ได้กำหนด
สภาพแวดล้อมที่เชลล์ดำเนินการ a กับดัก บน EXIT จะต้องเหมือนกับ
สิ่งแวดล้อมทันทีหลังจากคำสั่งสุดท้ายดำเนินการก่อน กับดัก เมื่อ EXIT ถูกถ่าย
แต่ละครั้ง กับดัก ถูกเรียกใช้ the การกระทำ อาร์กิวเมนต์จะต้องดำเนินการในลักษณะที่เทียบเท่า
ไปที่:
ประเมิน การกระทำ
สัญญาณที่ถูกละเว้นเมื่อเข้าสู่เชลล์ที่ไม่โต้ตอบไม่สามารถดักจับหรือรีเซ็ตได้
แม้ว่าจะไม่จำเป็นต้องรายงานข้อผิดพลาดเมื่อพยายามทำเช่นนั้น เชลล์แบบโต้ตอบอาจ
รีเซ็ตหรือจับสัญญาณละเว้นในการเข้า กับดักจะยังคงอยู่ในสถานที่สำหรับกระสุนที่กำหนด
จนเปลี่ยนไปเป็นอย่างอื่นโดยชัดแจ้ง กับดัก คำสั่ง
เมื่อป้อน subshell กับดักที่ไม่ถูกละเว้นจะถูกตั้งค่าเป็นค่าเริ่มต้น
เว้นแต่กรณีการทดแทนคำสั่งที่มีเพียงตัวเดียว กับดัก
คำสั่งเมื่อไม่จำเป็นต้องเปลี่ยนกับดัก การดำเนินการอาจตรวจสอบกรณีนี้โดยใช้
การวิเคราะห์ศัพท์เท่านั้น ตัวอย่างเช่น if `กับดัก` และ $( กับดัก -- ) อย่าเปลี่ยนกับดักใน
เชลล์ย่อย, กรณีเช่นการมอบหมาย var=กับดัก แล้วใช้ $($วาร์) อาจยังคงเปลี่ยนแปลง
พวกเขา. นี่ไม่ได้หมายความว่า กับดัก คำสั่งไม่สามารถใช้ภายใน subshell เพื่อ set
กับดักใหม่
การขอ กับดัก คำสั่งที่ไม่มีตัวถูกดำเนินการจะเขียนรายการคำสั่งไปยังเอาต์พุตมาตรฐาน
ที่เกี่ยวข้องกับแต่ละเงื่อนไข หากดำเนินการคำสั่งในเชลล์ย่อย
การใช้งานไม่ได้ทำการตรวจสอบทางเลือกที่อธิบายไว้ข้างต้นสำหรับคำสั่ง
ทดแทนที่มีเพียงตัวเดียว กับดัก คำสั่งและไม่ กับดัก คำสั่งที่มีตัวถูกดำเนินการ
ถูกดำเนินการตั้งแต่เข้าสู่ subshell รายการจะต้องมีคำสั่ง that
เชื่อมโยงกับแต่ละเงื่อนไขทันทีก่อนที่สภาพแวดล้อมของเชลล์ย่อยจะเป็น
เข้ามา มิฉะนั้น รายการจะต้องมีคำสั่งที่เกี่ยวข้องกับแต่ละ
สภาพ. รูปแบบจะเป็น:
"กับดัก −− %s %s ...\NS", <การกระทำ>,สภาพ> ...
เชลล์จะจัดรูปแบบเอาต์พุต รวมถึงการใช้การอ้างอิงอย่างเหมาะสม เพื่อให้เป็น
เหมาะสำหรับการป้อนกลับเข้าสู่เชลล์เป็นคำสั่งที่ให้ผลลัพธ์การดักจับแบบเดียวกัน สำหรับ
ตัวอย่าง:
save_traps=$(กับดัก)
...
ประเมิน "$save_traps"
ระบบที่สอดคล้องกับ XSI ยังอนุญาตให้มีหมายเลขสัญญาณตัวเลขสำหรับเงื่อนไขที่สอดคล้องกัน
ไปยังชื่อสัญญาณต่อไปนี้:
1 ซิกอัพ
2 สัญญาณ
3 ซิกควิท
6 ซิกาแบรต
9 ซิกคิลล์
14 ซิกัล RM
15 ซิกเตอร์
การขอ กับดัก ในตัวพิเศษจะต้องสอดคล้องกับปริมาณคำจำกัดความพื้นฐานของ POSIX.1-2008
Section 12.2, ประโยชน์ วากยสัมพันธ์ แนวทาง.
OPTIONS
ไม่
ตัวดำเนินการ
ดูคำอธิบาย
STDIN
ไม่ได้ใช้.
INPUT ไฟล์
ไม่
และพวกเรา ตัวแปร
ไม่
อะซิงโครนัส กิจกรรม
ผิดนัด
STDOUT
ดูคำอธิบาย
สแตเดอร์
ข้อผิดพลาดมาตรฐานจะใช้สำหรับข้อความวินิจฉัยเท่านั้น
เอาท์พุท ไฟล์
ไม่
ขยาย DESCRIPTION
ไม่
EXIT สถานภาพ
หากชื่อหรือหมายเลขกับดักไม่ถูกต้อง สถานะการออกที่ไม่ใช่ศูนย์จะถูกส่งคืน
มิฉะนั้นจะคืนค่าศูนย์ สำหรับเชลล์ทั้งแบบโต้ตอบและไม่โต้ตอบ
ชื่อหรือตัวเลขสัญญาณที่ไม่ถูกต้องจะไม่ถือว่าเป็นข้อผิดพลาดทางไวยากรณ์และไม่ก่อให้เกิด
เปลือกที่จะยกเลิก
ผลกระทบที่เกิด OF ข้อผิดพลาด
ผิดนัด
การขอ ดังต่อไปนี้ ส่วน เป็น ข้อมูล.
ใบสมัคร การใช้
ไม่
ตัวอย่าง
เขียนรายการกับดักและการกระทำทั้งหมด:
กับดัก
วางกับดักเพื่อ ออกจากระบบ ยูทิลิตีในไดเร็กทอรีที่อ้างถึงโดย หน้าหลัก สิ่งแวดล้อม
ตัวแปรดำเนินการเมื่อเชลล์สิ้นสุด:
กับดัก '"$HOME"/ออกจากระบบ' EXIT
หรือ:
กับดัก '"$HOME"/ออกจากระบบ' 0
ยกเลิกการตั้งค่ากับดักใน INT, QUIT, TERM และ EXIT:
กับดัก - INT เลิก ระยะ EXIT
หลักการและเหตุผล
การใช้งานอาจอนุญาตให้ชื่อสัญญาณตัวพิมพ์เล็กเป็นส่วนขยาย การดำเนินการอาจ
ยอมรับชื่อด้วยคำนำหน้า SIG; ไม่มีเปลือกประวัติศาสตร์ที่รู้จักทำเช่นนั้น NS กับดัก และ
ฆ่า โปรแกรมอรรถประโยชน์ใน POSIX.1-2008 เล่มนี้มีความสอดคล้องในการละเว้น
คำนำหน้า SIG สำหรับชื่อสัญญาณ บาง ฆ่า การใช้งานไม่อนุญาตให้ใช้คำนำหน้าและ ฆ่า
-ล แสดงรายการสัญญาณโดยไม่มีคำนำหน้า
การดักจับ SIGKILL หรือ SIGSTOP นั้นได้รับการยอมรับทางวากยสัมพันธ์โดยการใช้งานในอดีตบางอย่าง
แต่ก็ไม่มีผล แอปพลิเคชัน POSIX แบบพกพาไม่สามารถพยายามดักจับสัญญาณเหล่านี้ได้
รูปแบบผลลัพธ์ไม่ใช่แนวปฏิบัติทางประวัติศาสตร์ ตั้งแต่ผลผลิตของประวัติศาสตร์ กับดัก คำสั่ง
ไม่สามารถพกพาได้ (เพราะค่าสัญญาณตัวเลขไม่สามารถพกพาได้) และต้องเปลี่ยนเป็น
กลายเป็นดังนั้น โอกาสในการจัดรูปแบบผลลัพธ์ในลักษณะที่เชลล์สคริปต์
สามารถใช้เพื่อบันทึกแล้วนำกับดักมาใช้ใหม่ในภายหลังหากต้องการ
KornShell ใช้ an ERR กับดักที่ถูกกระตุ้นเมื่อไรก็ได้ เซ็ต -อี จะทำให้เกิดการออก นี้
ได้รับอนุญาตเป็นส่วนขยาย แต่ไม่ได้รับคำสั่ง เนื่องจากเชลล์อื่นไม่ได้ใช้
ข้อความเกี่ยวกับสภาพแวดล้อมสำหรับกับดัก EXIT ทำให้พฤติกรรมของ some . เป็นโมฆะ
เชลล์แบบโต้ตอบเวอร์ชันที่ผ่านมา เช่น ปิดอินพุตมาตรฐาน
ก่อนรันกับดักบน 0 ตัวอย่างเช่น ในเซสชันเชลล์เชิงโต้ตอบในอดีตบางเซสชัน
กับดักต่อไปนี้บน 0 จะพิมพ์เสมอ "-−":
กับดัก 'อ่าน ฟู; เสียงสะท้อน "−$foo−"' 0
คำสั่ง:
กับดัก ' ประเมิน " $cmd"' 0
ทำให้เนื้อหาของตัวแปรเชลล์ cmd ที่จะดำเนินการตามคำสั่งเมื่อเชลล์
ทางออก โดยใช้:
กับดัก '$cmd' 0
ทำงานไม่ถูกต้องถ้า cmd มีอักขระพิเศษใดๆ เช่น เครื่องหมายคำพูดหรือ
การเปลี่ยนเส้นทาง โดยใช้:
กับดัก " $cmd" 0
ยังใช้งานได้ (ผู้นำ ตัวละครปกป้องจากกรณีที่ไม่น่าจะเกิดขึ้นโดยที่ cmd คือ
จำนวนเต็มทศนิยมหรือขึ้นต้นด้วย '-') แต่มันขยาย cmd ตัวแปรเมื่อ กับดัก คำสั่ง
ถูกดำเนินการ ไม่ใช่เมื่อมีการดำเนินการออก
อนาคต ลู่ทาง
ไม่
ใช้ trapposix ออนไลน์โดยใช้บริการ onworks.net
