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番目のステートメントをフォーマットする正しい方法を知っている人はいますか (または、より簡単に実行する方法)?