我需要您的帮助,以了解如何处理路径中的空白区域。如何处理osascript中的空格
在我下面的示例中,我在终端bash shell中设置了一些变量,并从命令行执行“osascript”,利用这些变量运行['do shell script'] & ['display dialog']。当我从命令行运行这些时,我得到了不同的结果。我的最终目标是能够执行['do shell script'],并根据路径执行bash shell脚本。在这种情况下,路径中有空格。
注意:下面定义的变量INSTALLER_PATH
是这样设置的,因为路径是从我写的Apple脚本生成的,该脚本基本上采用了一个[带有空格的路径]并将该路径与另一个变量组合在一起。因为这个路径在名称中有空格,所以我使用[引号形式]设置将路径放在引号中。
APPLE脚本示例:
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
产生此路径{发现蜱}:
'/Volumes/Free.Space/Shotgun Python Dragon Project 2017/DRAGONFRAME_SCRIPTS_MASTER_V1.02/Dragonframe_Scripts_Installer.app/'_DRAGONFRAME/
而不是通过苹果脚本测试该找我需要的确切语法,我想它会更容易从命令行测试。这正是我从终端命令行设置和执行的内容。在下面的例子中,执行['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
预先感谢您为您可以提供任何帮助。
[如何值传递到一个AppleScript如'run'处理程序参数](https://stackoverflow.com/questions/16966117/combining-variables-in-bash-to-form-a -command-发送到使用AppleScript-最OSAS/16977401#16977401) – foo