Sie können versuchen, in den .app-Ordner der Anwendung zu wechseln und die Binärdatei umzubenennen, indem Sie eine Skriptdatei (markierte ausführbare Datei) erstellen, die als die bisher verwendete ausführbare Datei bezeichnet wird. Diese enthält einen Verweis auf die jetzt umbenannte ausführbare Datei zusammen mit dem Skript. z.B
cd /Applications/Brackets.app/Contents/MacOS mv Brackets BracketsReal echo "tty.js" > Brackets echo "BracketsReal &" >> Brackets chmod +x Brackets
Daraufhin sollte ein Textskript erstellt werden, das anschließend das Skript und die App startet ...
bearbeiten
Skripts im Appname.app/Contents/MacOS/
Ordner werden unterstützt.
Die erste Zeile #!/bin/sh
(aka shebang
) ist erforderlich
Die Technik zum Verschieben der echten ausführbaren Datei und deren Ausführung aus einem Skript wird aufgerufen wrapping
und wird auch von Anwendungen wie Gimp oder XQuartz (Xorg / X11) unter MacOS verwendet.
Wenn ich richtig verstehe, was der Benutzer zu erreichen versuchte, führen Bracket und die Datei automatisch öffnen tty.js
, auseinander das fehlende shebang
, müssen einige andere Überlegung.
Um BracketsReal richtig einzuwickeln, sollte Brackets wie folgt aussehen:
#!/bin/sh exec "$(dirname "$0")/BracketsReal"
Das sollte so laufen, als ob wir Brackets niemals zu BracketsReal verschoben hätten.
exec
ist ein integrierter Befehl der Shell
$0
ist ein spezielles Argument, das vom System an das ausgeführte Shell-Skript übergeben wird. Wenn Sie es mit einem Klick ausführen, sollte der vollständige Pfad zum Skript angegeben werden:
/Applications/Brackets.app/Contents/MacOS/Brackets
dirname
ist ein Shell-Befehl, der nur den Verzeichnisteil ohne Dateinamen abruft. $( )
Ist eine Befehlsersetzung, wird die Zeile einmal ausgeführt:
exec /Applications/Brackets.app/Contents/MacOS/BracketsReal
So sehr, dass wir die Anwendung aus /Applications
anderen Ordnern verschieben können und trotzdem ausführen sollten.
An dieser Stelle sollten wir prüfen, ob BracketsReal
(wahrscheinlich ein Skript selbst) Dateien als Argumente in der Befehlszeile öffnen (und, wenn eventuell eine spezielle Syntax erforderlich ist). Wenn Argumente akzeptiert werden, würde die Zeile etwa wie folgt aussehen:
exec "$(dirname "$0")/BracketsReal" "/path/to/the/file/tty.js"
Um zu überprüfen, ob mit dem Wrapper-Skript etwas nicht stimmt, öffnen Sie einfach ein Terminal und führen den Wrapper aus. Geben Sie an der Terminal-Eingabeaufforderung Folgendes ein: / paste:
/Applications/Brackets.app/Contents/MacOS/Brackets
Privilegien oder Syntaxfehler werden im Terminalfenster gedruckt.