按下 Ctrl-C 时在 zsh 中运行一个又一个命令

按下 Ctrl-C 时在 zsh 中运行一个又一个命令

我最近搬到了zshbash在 OSX 上)。我有一个 bash 别名,用于在 bash 上运行一个程序,然后运行另一个程序(即使前一个程序因错误退出)。我不知道如何在 zsh 中复制它。

我想复制的 bash 别名是:

gulp ; say "Gulp has crashed"

有谁知道如何在 zsh 中重写它?

编辑:

zsh和我得到的区别bash在于;当 gulp 运行时按下 Bash ctrl-c,停止 gulp,然后继续执行下一个命令。

在 Zsh 中按下ctrl-c似乎会停止整个命令行。

我使用这条线的目的是当 gulp 停止在后台运行时获得声音警告。 (对于非 Mac 用户,say 命令是文本到语音转换器)

答案1

我建议使用一个函数来代替:

mygulp () { trap : INT; gulp || say "Gulp has crashed"; }

trap捕获Ctrl-C(“中断”信号)并运行:命令(即什么也不做)。

||另请注意;,如果gulp正常退出(您没有按 ctrl-c),则不会发生任何事情,但如果退出代码不为零,则say命令将启动。

此功能应该在bash和中都有效zsh,在后面您可以;在关闭右括号之前删除最后一个。

相关内容