我最近搬到zshfrom bash(在 OSX 上)。我有一个 bash 别名,我用来在 bash 上运行一个程序然后另一个程序(即使以前的程序因错误退出)。我不知道如何在 zsh 中复制它。
我想复制的 bash 别名是:
gulp ; say "Gulp has crashed"
Run Code Online (Sandbox Code Playgroud)
有谁知道如何在 zsh 中重写它?
zsh和bash我得到的区别在于;ctrl-c在 gulp 运行时按下 Bash ,停止 gulp,然后继续执行下一个命令。
在 Zsh 中按下ctrl-c似乎停止了整个命令行。
我使用此行的目的是在 gulp 在后台停止运行时获得声音警告。(对于非 mac 用户,say 命令是文本到语音转换器)
我建议使用一个函数来代替:
mygulp () { trap : INT; gulp || say "Gulp has crashed"; }
Run Code Online (Sandbox Code Playgroud)
将trap捕获Ctrl-C(“中断”信号)并运行:命令(即什么也不做)。
||另请注意;,如果gulp正常退出(您没有按 ctrl-c),则不会发生任何事情,但如果退出代码不为零,则say命令将启动。
bash此功能应该在和中都有效zsh,在后面您可以;在关闭右括号之前删除最后一个。