Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 带参数的Zsh函数已停止使用AppleScript_Macos_Shell_Applescript_Zsh - Fatal编程技术网

Macos 带参数的Zsh函数已停止使用AppleScript

Macos 带参数的Zsh函数已停止使用AppleScript,macos,shell,applescript,zsh,Macos,Shell,Applescript,Zsh,我的~/.zshrc中有一个函数,它运行的AppleScript如下 qapp() { osascript -e 'quit app "$1"' } 此函数将通过像so$qapp Messages一样使用终端中的应用程序退出消息应用程序,从而终止该应用程序。我试图弄明白为什么它突然停止工作,因为它不再退出应用程序,没有出现错误消息或任何东西。测试后我做的唯一一件事就是提交文件并将其推送到远程repo。当我在函数中添加一个echo$1时,它会打印期望的参数。我不知道这

我的
~/.zshrc
中有一个函数,它运行的AppleScript如下

qapp() {
    osascript -e 'quit app "$1"'
}
此函数将通过像so
$qapp Messages
一样使用终端中的应用程序退出消息应用程序,从而终止该应用程序。我试图弄明白为什么它突然停止工作,因为它不再退出应用程序,没有出现错误消息或任何东西。测试后我做的唯一一件事就是提交文件并将其推送到远程repo。当我在函数中添加一个
echo$1
时,它会打印期望的参数。我不知道这是怎么发生的,也不知道脚本为什么不退出应用程序。如果我从命令行运行该命令,它就会工作。我正在运行macOS 11.3.1,我已经测试了另一个使用AppleScript清空垃圾箱的函数,它工作正常

这可能是我的
$PATH
的问题吗?我把它贴在下面以防万一


/usr/local/opt/ruby/bin:/Users/USERNAME/.gem/ruby/2.6.0/bin:/USERNAME/.gem/ruby/2.6.0/bin:/usr/local/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 \"$1\""
}


注意:在您的OP中,
'quit app“$1”
中,
$1
不会展开,因为它被包装在单引号中。

您的$1不会被替换,因为它在单引号中。您可以执行一个
osascript-e“退出应用程序”'$1'