มีวิธีง่าย ๆ ในการต่อท้ายอาร์กิวเมนต์บรรทัดคำสั่งกับแอปพลิเคชันบน Mac หรือไม่? ตัวอย่างเช่นการเรียกใช้ Opera ในโหมดคีออสก์หรือใช้โปรไฟล์อื่นใน Firefox ฉันสามารถพิมพ์ได้
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
ใน Windows ฉันสามารถต่อท้ายอาร์กิวเมนต์ไปยังคุณสมบัติทางลัด แต่เนื่องจาก Mac ไม่ได้ใช้ทางลัดต่อ se และเรียกใช้แอปพลิเคชันโดยตรงจึงไม่สามารถทำได้
ฉันได้พบว่าการเปิดใช้งานแอปพลิเคชันผ่าน bash หรือ Applescript ใช้งานได้บางส่วน:
# Bash
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote
# Applescript
do shell script "exec /Applications/Opera.app/Contents/MacOS/Opera -kioskmode"
ฉันสามารถทำให้ไฟล์ปฏิบัติการเหล่านี้และกำหนดไอคอนและทุกอย่างใช้งานได้ดียกเว้นว่าเมื่อฉันรันโปรแกรมหลอกเหล่านี้ไม่ว่าจะเป็นหน้าต่างเทอร์มินัลหรือไอคอน Applescript จะยังคงเปิดอยู่ตราบเท่าที่แอปพลิเคชันเปิดอยู่ สันนิษฐานได้ว่าการใช้คำสั่ง Applescript open
จะหลีกเลี่ยงสิ่งนี้ แต่เนื่องจากฉันไม่ได้รันแอปพลิเคชันเนื่องจากเป็นแพคเกจ (เพียง/Applications/Firefox
) จึงไม่ทำงาน
ดังนั้นจะมีวิธีที่ดีกว่าในการรันแอปพลิเคชันด้วยอาร์กิวเมนต์บรรทัดคำสั่งหรือไม่ ถ้าไม่มีวิธีป้องกันเซสชันเทอร์มินัลแบบถาวรหรือไอคอน Applescript ไม่ให้เปิดค้างอยู่ในขณะที่แอปพลิเคชันเปิดอยู่หรือไม่
แก้ไข
ตามหน้า Mozilla Wikiจะเป็นการดีที่สุดที่จะใช้สคริปต์เพื่อเรียกใช้แอปพลิเคชั่นที่มีข้อโต้แย้ง การเพิ่ม a &
ไปยังจุดสิ้นสุดของสคริปต์จะฆ่าหน้าต่างเทอร์มินัลแบบถาวร สิ่งเดียวที่น่ารำคาญในตอนนี้ก็คือมันจะเปิดหน้าต่างเทอร์มินัลที่ตายแล้วออกจากระบบ (ซึ่งดีกว่าแบบถาวร แต่ยัง ... )
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &
&
ยังคงเป็นของ Terminal คุณสามารถแก้ไขได้โดยเพิ่มบรรทัดdisown %/Applications/Firefox.app/Contents/MacOS/firefox
หลังจากที่คุณเรียกใช้จากนั้นคุณสามารถปิด Terminal ได้อย่างปลอดภัยโดยใช้ AppleScript