0

Sublime Text プラグイン (Python) に取り組んでおり、その一部であるシェル スクリプトがいくつかあります。Package Control は圧縮されたパッケージを提供するため、これらのスクリプトは zip 内からファイルとして実行できないため、文字列として保存し、subprocess.Popen および bash -c で実行しています。スクリプトの Mac バージョンには osascript が必要ですが、文字列からの実行に問題があります。スクリプトの osascript 部分は次のとおりです (すべて正常に動作します)。

osascript <<END
    tell application "Terminal"
        tell window 1
            activate
            set w to do script "clear; bash -c \"ssh -t $simulator_user@$simulator_host '$token $build_args'; echo; echo Press any key to continue; read -n 1; exit\""
        end tell
    end tell
END

私はこれまでのところ、最初のactivateステートメントを正常に実装しましosascript -e 'tell application "Terminal" to tell window 1 to activate';たが、2 番目のステートメントは、主にすべての引用符が原因で、多くの問題を引き起こしています。文字列に Python"""triple quote"""形式を使用しています。私が得た最も遠いものは次のようなものです

script = """"clear; bash -c "ssh -t $simulator_user@$simulator_host '$token $build_args'; echo; echo Press any key to continue; read -n 1; exit"\""""
darwin_osa2 = """osascript -e 'tell application "Terminal" to tell window 1 to set w to do script {}';""".format(script)

しかし、「83:87: 構文エラー: この「」の後に識別子を指定することはできません」のようなメッセージが表示されます。(-2740)" およびその他の同様に非固有のエラー。 bash -c で使用するためにその2番目のステートメントをフォーマットする正しい方法を知っている人はいますか (または、より簡単に実行する方法)?

4

1 に答える 1

0

ファイル.no-sublime-packageを作成すると、Package Control が圧縮されたパッケージを抽出します。そうすれば、スクリプトを追加して実行できます。

于 2014-06-15T12:46:22.707 に答える