无法格式化带有多个引号的字符串
Trouble formatting a string with multiple quotation marks
我正在制作一个运行 osascript
的 NSTask 以优雅地退出应用程序而不是 killall/kill
命令。
我有这个:
let killtask = NSTask()
killtask.launchPath = "/usr/bin/killall"
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e","'quit app", ""Transmission"""'"]
killtask.launch()
麻烦的一行是我要传递的参数。
终端中的命令是这样的:
/usr/bin/osascript -e 'quit app "Notes"'
我哪里错了?我如何设置参数的格式,使其获得命令中实际使用的所有单引号和双引号?
编辑
运行
killtask.arguments = ["-e \'quit app \"Transmission\"\'"]
给我:
0:2: syntax error: A unknown token can’t go here. (-2740)
尝试分隔引号,并确保你的论点是正确的。
let killtask = NSTask()
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e","'quit app \"Transmission\"'"]
killtask.launch()
如果参数不起作用,请尝试在单引号 ('
) 前加上反斜杠。
这里是 parameterize an AppleScript run via osascript
的正确方法:
let appName = "Transmission"
let killtask = NSTask()
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e", "on run {appName}",
"-e", " quit app appName",
"-e", "end run",
appName]
killtask.launch()
我正在制作一个运行 osascript
的 NSTask 以优雅地退出应用程序而不是 killall/kill
命令。
我有这个:
let killtask = NSTask()
killtask.launchPath = "/usr/bin/killall"
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e","'quit app", ""Transmission"""'"]
killtask.launch()
麻烦的一行是我要传递的参数。
终端中的命令是这样的:
/usr/bin/osascript -e 'quit app "Notes"'
我哪里错了?我如何设置参数的格式,使其获得命令中实际使用的所有单引号和双引号?
编辑
运行
killtask.arguments = ["-e \'quit app \"Transmission\"\'"]
给我:
0:2: syntax error: A unknown token can’t go here. (-2740)
尝试分隔引号,并确保你的论点是正确的。
let killtask = NSTask()
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e","'quit app \"Transmission\"'"]
killtask.launch()
如果参数不起作用,请尝试在单引号 ('
) 前加上反斜杠。
这里是 parameterize an AppleScript run via osascript
的正确方法:
let appName = "Transmission"
let killtask = NSTask()
killtask.launchPath = "/usr/bin/osascript"
killtask.arguments = ["-e", "on run {appName}",
"-e", " quit app appName",
"-e", "end run",
appName]
killtask.launch()