Có cách nào dễ dàng để nối các đối số dòng lệnh vào một ứng dụng trên máy Mac không? Ví dụ: để chạy Opera ở chế độ kiosk hoặc sử dụng cấu hình khác trong Firefox, tôi có thể nhập
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
Trong Windows, tôi có thể nối các đối số vào các thuộc tính phím tắt, nhưng vì máy Mac không sử dụng phím tắt mỗi lần và chạy các ứng dụng trực tiếp, nên điều này là không thể.
Tôi đã thấy rằng việc khởi chạy các ứng dụng thông qua bash hoặc Applescript hoạt động một phần:
# 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"
Tôi có thể làm cho các tệp thực thi này và gán một biểu tượng và mọi thứ đều hoạt động tốt ngoại trừ khi tôi chạy một trong các chương trình giả này, cửa sổ đầu cuối hoặc biểu tượng Applescript vẫn mở miễn là ứng dụng được mở. Có lẽ, sử dụng lệnh Applescript open
sẽ tránh được điều này, nhưng vì tôi không chạy ứng dụng vì nó được đóng gói (chỉ /Applications/Firefox
), nên nó không hoạt động.
Vì vậy, có cách nào tốt hơn để chạy các ứng dụng với các đối số dòng lệnh? Nếu không, có cách nào để ngăn phiên cuối liên tục hoặc biểu tượng Applescript không mở trong khi ứng dụng đang mở không?
Biên tập
Theo trang Mozilla Wiki , tốt nhất nên sử dụng tập lệnh để chạy ứng dụng với các đối số. Thêm một &
vào cuối tập lệnh sẽ giết chết cửa sổ Terminal liên tục. Điều khó chịu duy nhất bây giờ là nó mở một cửa sổ Terminal đã chết, đã đăng xuất (tốt hơn cửa sổ liên tục, nhưng vẫn ...)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &
&
nó vẫn thuộc về Terminal, bạn có thể khắc phục điều đó bằng cách thêm dòng disown %/Applications/Firefox.app/Contents/MacOS/firefox
sau khi bạn chạy nó, sau đó bạn có thể đóng Terminal một cách an toàn, sử dụng AppleScript.