我最近搬到了zsh
(bash
在 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
,在后面您可以;
在关闭右括号之前删除最后一个。