带有参数的 Zsh 函数停止使用 AppleScript
Zsh function with argument stopped working with AppleScript
我的 ~/.zshrc
中有一个函数 运行 是一个像这样的 AppleScript
qapp() {
osascript -e 'quit app ""'
}
此函数会像这样使用它来终止终端中的应用程序 $ qapp Messages
退出 Messages 应用程序。我试图弄清楚为什么这一切突然停止工作,因为它不再退出应用程序,没有出现错误消息或任何东西。测试后我唯一做的就是提交文件并将其推送到我的远程仓库。当我在函数中添加 echo
时,它会打印预期的参数。我不知道这是怎么发生的,也不知道为什么脚本实际上不会退出应用程序。如果我从命令行 运行 该命令,它就可以工作。我正在 运行ning macOS 11.3.1,我已经测试了另一个使用 AppleScript 清空垃圾箱的功能,它工作正常。
这可能是我的 $PATH
的问题吗?我把它贴在下面以防万一。
/usr/local/opt/ruby/bin:/Users/USERNAME/.gem/ruby/2.6.0/bin:/Users/USERNAME/.gem/ruby/2.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
以下对我有效:
qapp() {
osascript -e "quit app \"\""
}
注意:在 'quit app ""'
和您的 OP 中一样,
不会展开,因为它包含在 单引号 .
中
我的 ~/.zshrc
中有一个函数 运行 是一个像这样的 AppleScript
qapp() {
osascript -e 'quit app ""'
}
此函数会像这样使用它来终止终端中的应用程序 $ qapp Messages
退出 Messages 应用程序。我试图弄清楚为什么这一切突然停止工作,因为它不再退出应用程序,没有出现错误消息或任何东西。测试后我唯一做的就是提交文件并将其推送到我的远程仓库。当我在函数中添加 echo
时,它会打印预期的参数。我不知道这是怎么发生的,也不知道为什么脚本实际上不会退出应用程序。如果我从命令行 运行 该命令,它就可以工作。我正在 运行ning macOS 11.3.1,我已经测试了另一个使用 AppleScript 清空垃圾箱的功能,它工作正常。
这可能是我的 $PATH
的问题吗?我把它贴在下面以防万一。
/usr/local/opt/ruby/bin:/Users/USERNAME/.gem/ruby/2.6.0/bin:/Users/USERNAME/.gem/ruby/2.6.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:/opt/X11/bin:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands
以下对我有效:
qapp() {
osascript -e "quit app \"\""
}
注意:在 'quit app ""'
和您的 OP 中一样, 不会展开,因为它包含在 单引号 .