$ PATH上のコンパイルされたAppleScriptを見つけて実行するにはどうすればよいですか?


1

シェルスクリプト内のユーティリティ関数として使用したい短いアップルスクリプトがいくつかあります。たとえば、最前面のアプリケーションの名前を返します。スクリプトは私のディレクトリにある個人用のスクリプトディレクトリにあります。 $path。別のディレクトリにいるときは、実行することができます

$myscript.applescript

そして、scriptsディレクトリがパス上にあるので、このファイルが見つけられて実行されます。 #!/usr/bin/env osascript )しかし、私が走ったとき

$myscript.scpt

コンパイルしたバージョンを試して実行すると、次のようになります。

zsh:execフォーマットエラー:get_front_app_name.scpt

私はコンパイルされたバージョンを使いたいのですが、他の実行ファイルと同じように実行できるようにしたいです $pathつまり、インタプリタ名を指定する必要はありません( osacompile またはファイルへのパス。現在のところ、コンパイル済みの.scpt applescriptを実行する唯一の方法は、両方を実行することです。

$osascript path/to/myscript.scpt

この手荷物を使わずにコンパイル済みフォームを実行することは可能ですか?

回答:


1

.scptは実行可能ではないのでこれを行うことはできません。

shebang(!#)はAppleScriptの構文にはないため、何もしません。


Applescript shebangは次のとおりです。#!/ usr / bin / osascript
markhunte

これはAppleScriptではなく、AppleScriptを起動するシェルスクリプトです。
Matthieu Riegler

しかし、あなたはそれをコンパイルされたAppleScriptとプレーンテキストファイルで使うことができます。それはあなたがそれのネイティブシンタックスを使ってどんなApplescriptをも実行することを可能にします。しかし、はい、それはosascriptコマンドなしでは実行されません。 P.S私はあなたをバックアップしたことをきっかけにしました。
markhunte

コンパイルされたAppleScriptで?どうしますか?それをAppleScript ByteCodeに追加しても、ファイルがめちゃくちゃになるだけです。
Matthieu Riegler

いいえ、違います。あなたはそのスクリプトがネイティブのAppleScriptを使うことを可能にするためのプレーンテキストのuncompiledフォームだけではなく、コンパイルされたApplescriptのためのものではないことは正しいです。
markhunte
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.