如何在 Zsh 中处理三重嵌套引号?

如何在 Zsh 中处理三重嵌套引号?

我已经在终端上设置了运行 Apple Script 的别名。如下所示:

alias playda="osascript -e 'tell application "QuickTime Player"
    activate
    set thisFile to open POSIX file "path.m4a"
    play thisFile
end tell'"

而Zsh总是报错:

.zshrc:19:预期数量

我认为这与引号有关。有人能告诉我如何处理这个问题吗?

非常感谢!

答案1

使用转义字符(\):

alias playda="osascript -e 'tell application \"QuickTime Player\"'"

我不是用 Mac 的,所以我不确定单引号,但转义双引号是解决方案的关键。

答案2

在 shell 脚本中,函数几乎总是比别名更容易使用:

playda() {
  osascript -e 'tell application "QuickTime Player"
    activate
    set thisFile to open POSIX file "path.m4a"
    play thisFile
    end tell'
}

相关内容