我最近发现了 zsh 中的 preexec() 和 precmd() 函数,并想出了一种新颖的方法来从我的 shell 中挤出更多的功能。
此 prexec() 函数检查您刚刚尝试运行的“命令”是否以“http”开头并以“.git”结尾,如果是,它将自动 cd 到我的源目录并检查源代码。所以我只是把它粘贴进去然后按回车键就可以参加比赛了。否则,任何正常(或错误)都应该看起来正常。
function preexec() {
[[ "$1" =~ "^http.*.git\$" ]] && cd /usr/local/src && git clone "$1"
}
现在让我感到困惑的是,似乎没有任何方法可以忽略或覆盖您收到的“找不到命令”错误。
zsh:没有这样的文件或目录:https ://github.com/someproject.git
我尝试覆盖 '1'、ZLE_LINE_ABORTED、翻转 2>&1、返回 1、0、使用 noglob .. 等等等等。没有运气。
任何 zsh smarties 都知道如何抑制错误消息?