我需要你如何处理路径中的空白区域。
在下面的例子中,我在终端bash shell中设置一些变量并执行," osascript"从命令行,利用这些变量运行['做shell脚本']& ['显示对话框']。当我从命令行运行这些时,我得到了不同的结果。我的最终目标是能够执行['做shell脚本']并根据路径执行bash shell脚本。在这种情况下,路径中包含空格。
注意:下面定义的INSTALLER_PATH
变量是这样设置的,因为路径是从我编写的Apple脚本生成的,它基本上采用了[带有空格的路径]并将该路径与另一个变量相结合。由于此路径在名称中包含空格,因此我使用[引用形式]设置将路径放在引号中。
APPLE SCRIPT示例:
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/
不是通过Apple Script测试这个,而是找到我需要的确切语法,我认为从命令行测试它会更容易。这正是我在终端命令行中设置和执行的内容。在下面的示例中,执行['显示对话框' ]工作和['做shell脚本' ]失败了。我认为如果有一种方法将整个路径用双引号括起来,我的问题就会得到解决,尽管所有试图用双引号括起来的路径都失败了:
%> 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
提前感谢您提供任何帮助。
答案 0 :(得分:0)
我认为你正在寻找类似于这种语法的东西:
set dragonFrame to ("/_DRAGONFRAME/")
set INSTALLER_PATH to path of (pathToApp & dragonFrame)
<强>结果强>:
'/Volumes/Free.Space/Shotgun Python Dragon Project 2017/DRAGONFRAME_SCRIPTS_MASTER_V1.02/Dragonframe_Scripts_Installer.app/_DRAGONFRAME/'
如果您需要在路径周围使用双引号:
("\"" & pathToApp & dragonFrame & "\"")
并删除引用的表格参数,让您:
set INSTALLER_PATH to ("\"" & pathToApp & dragonFrame & "\"")