无法在Applescript中运行自定义bash脚本

时间:2015-12-08 15:44:34

标签: xcode bash applescript sh

这是我的代码:

set scriptpath to (path to current application as text)
set scripty to do shell script scriptpath & "Contents:Resources:moveskript " & variable1 & variable2 with administrator privileges

它说:

2015-12-08 16:40:33.565 Move[9093:63037] *** -[AppDelegate mybuttonhandler:]: /bin/sh: HD2:Users:gff:Library:Developer:Xcode:DerivedData:Move-fxtmdhtebdbqpbemfeknbexosigm:Build:Products:Debug:Move.app:Contents:Resources:moveskript: command not found (error 127)

即使命令在那里,当我通过终端运行时它也能正常工作。

1 个答案:

答案 0 :(得分:0)

"内容:资源:moveskript" 语法适用于Finder路径对象,而不是POSIX路径。

<强>错误:

  1. 合并完整路径:set moveScriptPath to (path to me as string) & "Contents:Resources:moveskript"
  2. 获取POSIX路径:set posixPath to POSIX path of moveScriptPath
  3. 目前该路径导致错误127.修复后,如果你&#34; moveskript&#34; 没有任何错误,那应该没问题。注意带有空格,特殊字符等的路径,在苹果脚本中使用quoted form of somePathWithWhitespaceMore info

    这个&#39; moveskript&#39; ,从名称猜测,它将两个移动到用户可能没有读/写权限的位置,FYI有一个shell命令{{1}只是为了那个。打开终端并输入mv以阅读更多相关信息。它也是一个苹果脚本吗?为什么不在同一个脚本中使用处理程序?如果是这样,你必须这样做:

    man mv

    我猜你是从应用程序而不是applet调用它,因此不需要使用applescript来移动内容,再次查看do shell script ("/usr/bin/osascript " & quoted form of posixPath & " " & quoted form of file1 & " " & quoted form of file 2) with administrator privileges 。更好地使用Cocoa框架,因为它可以完成所有工作more info