gpt4 book ai didi

终端 Applescript 无法逃脱报价

转载 作者:行者123 更新时间:2023-12-01 10:47:58 31 4
gpt4 key购买 nike

尝试在我的 osascript 命令中包含引号 ' ' 时遇到了一个奇怪的问题。

如果我尝试转义一个正常的可转义字符,它就可以正常工作。示例: osascript -e 'tell app "Finder"to display dialog "Test\\st"' Finder 中弹出一个对话框,其中包含文本 Test

但是,当我在写出完整的句子时尝试使用撇号时,就会出现问题。示例: osascript -e 'tell app "Finder"to display dialog "Te\'st"' 当我运行它时,我只剩下没有对话框,终端中的文本输入看起来像这样:

>

据我所知,这无论如何都应该有效,但是它没有。

最佳答案

只是为了补充@Zero 的有用答案(确实解决了问题):

由于您使用的是 osascript,因此 shell 的 (bash's) 引用规则适用 < em>第一:

bash(或任何与 POSIX 兼容的 shell)中,不能在单引号字符串中包含单引号 - 即使转义也不行。

然而,你可以做的是将你的字符串分成多个部分,并在需要的地方简单地用单引号拼接(在带引号的字符串之外转义为\') :

osascript -e 'tell app "Finder" to display dialog "Te'\''st"'
  • '告诉应用程序“Finder”显示对话框“Te',第一部分后面是转义的单引号\',然后是其余部分字符串 'st"'
  • 由于各部分之间没有空格,bash 创建了一个包含拼接文字 'single 字符串。

通常更容易将 单引号 引用的字符串传递给 osascript,因为 AppleScript 中经常使用双引号,因此必须当包含在 double 引用的字符串中时转义(如在接受的答案中)。

在您必须将单引号传递给 AppleScript 的典型罕见事件中,您可以使用此答案中描述的技术。

关于终端 Applescript 无法逃脱报价,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23592784/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com