- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
尝试在我的 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/
这个问题在这里已经有了答案: How to escape the bang (!) character in Linux bash shell? (3 个答案) 关闭 5 年前。 我有一个复杂的命令
我有一个 javascript 转换工具,用于将 XML 移动到在 Fitnesse 静态页面上运行的 Fitnesse 表中,其中我在 CamelCase 和 xmlns 周围使用 !- 和 -!避
波浪字符是否需要在 bash 脚本中进行转义? 我试图用\~ 来逃避它,但它没有帮助。如果我删除 ~ 字符,下面的代码将按预期工作。 if ! [[ "$line" =~ ^[
在 Elixir 中,什么时候应该使用 Macro.escape/1 而不是 quote/1?我看过beginner's guide但这没有帮助。 最佳答案 quote/2返回 abstract sy
在我的表单中,我的复选框元素的名称是 onSite[]。 我编写了一个简单的 JavaScript,只需单击一下即可检查它们。 function checkAll(field) { for (i =
我有一个包含小数百分比值的字段。 文本 block 绑定(bind)到该字段,我想用 % 符号显示它。 例如:如果 myfield = 5.0,则文本应显示为“5.00 %” 这是我的绑定(bind)
是否有可能逃脱并保持非标准?表中模板 Wiki 标记中的 URL 中的字符? {| class="wikitable" |- ! Test in Table |- | [http://example.
我是一名优秀的程序员,十分优秀!