Что вы можете попробовать, так это перейти в папку приложения .app и переименовать двоичный файл, создав файл сценария (помеченный как исполняемый файл) с именем исполняемого файла, который будет содержать ссылку на теперь переименованный исполняемый файл вместе со всеми сценариями. например
cd /Applications/Brackets.app/Contents/MacOS mv Brackets BracketsReal echo "tty.js" > Brackets echo "BracketsReal &" >> Brackets chmod +x Brackets
Это должно создать текстовый скрипт, который запускает ваш скрипт и приложение потом ...
редактировать
Скрипты в Appname.app/Contents/MacOS/
папке поддерживаются.
Первая строка #!/bin/sh
(ака shebang
) обязательна
Вызывается метод перемещения реального исполняемого файла и его выполнения из скрипта, wrapping
который также используется в таких приложениях, как Gimp или XQuartz (Xorg / X11) на MacOS.
Если я правильно понимаю, чего пытался достичь пользователь, запустите Bracket и автоматически откройте файл tty.js
, кроме отсутствующего shebang
, потребуется другое рассмотрение.
Чтобы правильно обернуть BracketsReal, скобки должны выглядеть примерно так:
#!/bin/sh exec "$(dirname "$0")/BracketsReal"
Это должно работать так, как будто мы никогда не перемещали скобки в BracketsReal.
exec
это встроенная команда оболочки
$0
является специальным аргументом, передаваемым из системы в исполняемый сценарий оболочки; при выполнении щелчком должен быть указан полный путь к сценарию:
/Applications/Brackets.app/Contents/MacOS/Brackets
dirname
это команда оболочки, чтобы получить только часть каталога без имени файла, $( )
это подстановка команды, после выполнения строка становится:
exec /Applications/Brackets.app/Contents/MacOS/BracketsReal
Настолько сильно, что мы можем переместить приложение из /Applications
других папок и все равно должны его запустить.
На этом этапе мы должны проверить, что BracketsReal
(возможно, сам скрипт) принимает файлы, которые открываются в качестве аргументов в командной строке (и, в конечном счете, если требуется какой-то особый синтаксис), если он принимает аргументы, тогда строка будет выглядеть примерно так:
exec "$(dirname "$0")/BracketsReal" "/path/to/the/file/tty.js"
Последнее замечание: чтобы убедиться, что что-то не так со сценарием оболочки, просто откройте терминал и запустите оболочку, в командной строке терминала просто введите / paste:
/Applications/Brackets.app/Contents/MacOS/Brackets
привилегии или синтаксические ошибки выводятся в окне терминала.