Чи є простий спосіб додати аргументи командного рядка до програми на Mac? Наприклад, щоб запустити Opera в режимі кіоску або використовувати інший профіль у Firefox, я можу набрати
$ /Applications/Opera.app/Contents/MacOS/Opera -kioskmode
$ /Applications/Firefox.app/Contents/MacOS/firefox -P profilename -no-remote
У Windows я можу додати аргументи до властивостей ярлика, але оскільки Macs не використовує ярлик як такий, а запускає програми безпосередньо, це неможливо.
Я виявив, що запуск програм через 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 , найкраще використовувати сценарій для запуску програми з аргументами. Додавання в &
кінець сценарію вбиває стійке вікно терміналу. Єдине роздратування в тому, що воно відкриває мертве, закрите вікно терміналу (що краще, ніж стійке, але все ж ...)
#!/bin/sh
/Applications/Firefox.app/Contents/MacOS/firefox -P default -no-remote &
&
яке все ще належить до терміналу, ви можете це виправити, додавши рядок disown %/Applications/Firefox.app/Contents/MacOS/firefox
після запуску, а потім можете безпечно закрити термінал, використовуючи AppleScript.