ปิดแอพพลิเคชันจาก Command Line ใน Mac OS X อย่างมิดชิด

การเลิกใช้งานแอพฯ โดยปกติจะทำได้ผ่านเมนูแอพพลิเคชันที่เหมาะสมโดยเลือก "Quit" แต่ Mac GUI จะไม่สามารถเข้าถึงได้จากบรรทัดคำสั่งของ Mac OS X ดังนั้นเมื่อผู้ใช้บรรทัดคำสั่งส่วนใหญ่กำลังเผชิญหน้ากับความจำเป็นในการออกจากแอพพลิเคชั่น ใช้คำสั่ง 'kill' เพื่อยุติกระบวนการและบังคับให้ออกจากแอปแทนการใช้ 'soft' kill ปัญหาที่เห็นได้ชัดในการยุติแอปคือในขณะที่ออกจากแอพพลิเคชันคุณอาจสูญเสียข้อมูลในกระบวนการดังกล่าวและแม้แต่แคชการเรียกคืนอาจไม่เพียงพอสำหรับการกู้คืนข้อมูล ดังนั้นเมื่อใดก็ตามที่เป็นไปได้ก็มักจะดีที่สุดสำหรับผู้ใช้อย่างสง่างามออกจากโปรแกรมประยุกต์แทน


แม้ว่าจะไม่เป็นที่รู้จักกันดี แต่คุณสามารถส่งสัญญาณยกเลิกมาตรฐานไปยังแอพพลิเคชัน Mac OS X GUI จากบรรทัดคำสั่งด้วยความช่วยเหลือของคำสั่ง os script มันค่อนข้างใช้งานง่ายและนั่นคือสิ่งที่เราจะครอบคลุมที่นี่

วิธีเลิกใช้ Apps จาก Terminal ใน Mac OS X ด้วย osascript

อีกครั้งนี้จะออกสัญญาณเลิกใช้มาตรฐานไปยังแอพพลิเคชันแทนที่จะเป็นสัญญาณ (ฆ่า) สิ้นสุด นั่นหมายความว่าแอ็พพลิเคชันเป้าหมายจะไม่สามารถออกหากมีข้อมูลที่ยังไม่ได้บันทึกโดยไม่ต้องแจ้งให้ผู้ใช้ป้อนข้อมูล (ยกเว้นกรณีที่คุณเปิดใช้งานการตั้งค่าการบันทึกอัตโนมัติสำหรับ Mac OS X และแอ็พพลิเคชันไม่แจ้งให้ผู้ใช้ทราบ)

ไวยากรณ์พื้นฐานเพื่อส่งสัญญาณออกมาตรฐานไปยังแอ็พพลิเคชัน GUI ใน Mac OS X จาก Terminal มีดังนี้:

osascript -e 'quit app "APPLICATIONNAME"'

ตัวอย่างเช่นหากต้องการออกจากปฏิทินจากบรรทัดคำสั่งให้แทนที่ APPLICATIONNAME ด้วย "ปฏิทิน"

osascript -e 'quit app "Calendar"'

เนื่องจากปฏิทินซิงค์และไม่มีตัวเลือกการบันทึกคุณจะไม่แสดงกล่องโต้ตอบการบันทึกมาตรฐานเมื่อพยายามปิดแอป ด้วยแอปที่มีตัวเลือกการบันทึกไว้และเมื่อ Mac OS X ปิดการบันทึกอัตโนมัติไว้กล่องโต้ตอบการบันทึกจะถูกเรียกตามปกติ

ข้อดีอีกข้อหนึ่งในการใช้ osascript เพื่อปิดแอพพลิเคชั่นคือคุณสามารถให้ชื่อแอพพลิเคชันที่แท้จริงซึ่งง่ายกว่าในการจดจำและใช้งานได้ง่ายกว่าการใช้หมายเลขรหัสกระบวนการที่ไปพร้อมกับคำสั่งฆ่า โปรดสังเกตว่า Mac OS X รุ่นใหม่มีคำสั่งฆ่าที่ดีกว่าซึ่งเป็นที่รู้จักกันดีในนาม pkill

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