4

MacOS X で applescript を使用して自動ビルド スクリプトをビルドしようとしています。

今のところ、すべてが 1 つの不具合で正しく動作します。

コマンド"do script ("zipalign -f -v 4 /tmp/src.apk /tmp/tgt.apk")は、アプリケーション "ターミナル" の別の Tell で実行すると正常に動作しますが、ターミナル ウィンドウを開いたままにしておくと、スクリプト内の他のすべては、アプリケーション「Finder」の指示で正常に機能します。

「Finder」のテル内で「do shell script」を介してコマンドを実行しようとすると、「command not found」というエラーのみが表示されます。

zipalignへのパスは/etc/pathsに設定されており、任意のターミナル ウィンドウと「do shell 」コマンドから到達できますが、 「do shell script」コマンドからは到達できません。

「do shell script」が $PATH を使用してコマンドを検索することを確実にする正しい方法は何ですか、または「do script」によって残された端末を閉じるための防弾方法はありますか?

4

2 に答える 2

0

この質問は4年前のものですが、最も簡単な答えを言う必要があると思います. たとえば、コマンド「wkhtmltopdf」(pdfを印刷するために使用され、に配置されます/usr/local/bin)を使用します

--past
wkhtmltopdf out.html out.pdf
--now
PATH=$PATH:/usr/local/bin; wkhtmltopdf out.html out.pdf

AppleScript によって呼び出される sh プロセスに新しい PATH 変数を追加するだけです。

于 2017-02-06T13:21:12.743 に答える