尝试通过 Swift 代码内的 AppleScript 运行 一个 shell 脚本时引用相关错误
Quote-related error when trying to run a shell script via AppleScript inside of Swift code
我正在编写一个 AppleScript,我将在 macOS 应用程序中 运行。该脚本在脚本编辑器中运行良好,但当我将其放入 Xcode 并尝试对其进行 运行 时,编码 URL 失败并出现引号错误。
我很乐意通过 Swift 和 Xcode 而不仅仅是脚本编辑器将其成功添加到 运行。谢谢!
我的代码:
var source = """
on encode(str)
do shell script "php -r 'echo urlencode(\"" & str & "\");'"
end encode
set f to encode("https://twitter.com")
f
"""
let script = NSAppleScript(source: source)!
var error: NSDictionary? = nil
let result = script.executeAndReturnError(&error)
print(result.stringValue)
print(error)
打印出错误:
Optional({
NSAppleScriptErrorBriefMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorNumber = "-2741";
NSAppleScriptErrorRange = "NSRange: {60, 1}";
})
在 shell 脚本中引用字符串可能很烦人。
试试这个,quoted form of
寻找最佳组合
do shell script "php -r " & quoted form of ("echo urlencode(" & quote & str & quote & ");")
顺便NSRange: {60, 1}
告诉你哪里出错了(字符串的第61个字符)
我正在编写一个 AppleScript,我将在 macOS 应用程序中 运行。该脚本在脚本编辑器中运行良好,但当我将其放入 Xcode 并尝试对其进行 运行 时,编码 URL 失败并出现引号错误。
我很乐意通过 Swift 和 Xcode 而不仅仅是脚本编辑器将其成功添加到 运行。谢谢!
我的代码:
var source = """
on encode(str)
do shell script "php -r 'echo urlencode(\"" & str & "\");'"
end encode
set f to encode("https://twitter.com")
f
"""
let script = NSAppleScript(source: source)!
var error: NSDictionary? = nil
let result = script.executeAndReturnError(&error)
print(result.stringValue)
print(error)
打印出错误:
Optional({
NSAppleScriptErrorBriefMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorMessage = "Expected end of line but found \U201c\"\U201d.";
NSAppleScriptErrorNumber = "-2741";
NSAppleScriptErrorRange = "NSRange: {60, 1}";
})
在 shell 脚本中引用字符串可能很烦人。
试试这个,quoted form of
寻找最佳组合
do shell script "php -r " & quoted form of ("echo urlencode(" & quote & str & quote & ");")
顺便NSRange: {60, 1}
告诉你哪里出错了(字符串的第61个字符)