パス内の空白をどう扱うかについての助けが必要です。osascriptで空白を扱う方法
以下の私の例では、ターミナルbashシェルでいくつかの変数を設定し、コマンドラインから "osascript"を実行してこれらの変数を利用して[do shell script] & ['display dialog']を実行します。コマンドラインからこれらを実行すると、私は別の結果を得ています。私の最終的な目標は、['do shell script']を実行できるようにすることです。パスに基づいてbashシェルスクリプトを実行します。この場合、パスにはパスが空白になります。
注:私が書いたApple Scriptから生成されたパスは[基本的には空白で]そのパスを別の変数と組み合わせているため、以下で定義される変数はINSTALLER_PATH
です。このパスには名前にスペースが含まれているため、パスを引用符で囲む[[引用符で囲んだ形式に]設定を使用しています。
APPLEスクリプトの例:
'/Volumes/Free.Space/Shotgun Python Dragon Project 2017/DRAGONFRAME_SCRIPTS_MASTER_V1.02/Dragonframe_Scripts_Installer.app/'_DRAGONFRAME/
の代わりに見つけるために、アップルスクリプトを介してこれをテスト:
set pathToApp to POSIX path of ((path to me) as text)
set dragonFrame to ("_DRAGONFRAME/")
set INSTALLER_PATH to quoted form of pathToApp & dragonFrame
display dialog INSTALLER_PATH
は、このパスを{ティックに気づく}生成私が必要とする正確な構文は、私はそれがこれをコマンドラインから簡単にテストすることができます。これはまさに私がTerminalコマンドラインから設定し実行していることです。以下の例では、['display dialog']の実行と['do shell script']の実行に失敗します。
%> INSTALLER_PATH='/Volumes/Free.Space/Shotgun Python Dragon Project 2017/DRAGONFRAME_SCRIPTS_MASTER_V1.02/Dragonframe_Scripts_Installer.app/'_DRAGONFRAME/
%> ADMIN_USER_PROC="_Python_PySide_QT_Installer/Scripts/AdminUserProcesses.sh"
%> osascript -e 'do shell script ("'"${INSTALLER_PATH}"'" & "'"${ADMIN_USER_PROC}"'")'
はこのエラーを生成します。私は、二重引用符でパス全体を囲む方法がある場合は、二重引用符で囲まれたパスを取得し、すべての試みが失敗したものの、私の問題が解決されると思います。
0:217: execution error: sh: /Volumes/Free.Space/Shotgun: No such file or directory (127)
%> osascript -e 'display dialog ("'"${INSTALLER_PATH}"'" & "'"${ADMIN_USER_PROC}"'")'
は、このパスを生成します。
/Volumes/Free.Space/Shotgun Python Dragon Project 2017/DRAGONFRAME_SCRIPTS_MASTER_V1.02/Dragonframe_Scripts_Installer.app/_DRAGONFRAME/_Python_PySide_QT_Installer/Scripts/AdminUserProcesses.sh
あなたが提供できるすべての助けを事前にありがとうございます。
[ 'run'ハンドラパラメータとしてはAppleScriptに値を渡す方法。](https://stackoverflow.com/questions/16966117/combining-variables-in-bash-to-form-a:付き-command-to-applescript-using-the-osas/16977401#16977401) – foo