Запуск одной команды за другой в zsh при нажатии Ctrl-C

Недавно я переехал в zsh из bash (на OSX). У меня есть псевдоним bash, который я использовал для запуска одной программы, а затем другой (даже если предыдущая программа выходит с ошибкой) в bash. Я не могу решить, как это сделать в zsh.

bash alias, который я хотел бы повторить:

 gulp ; say "Gulp has crashed" 

Кто-нибудь знает, как переписать это в zsh?

Редактировать:

Разница между zsh и bash которую я получаю, такова; с нажатием кнопки Bash ctrl-c когда gulp работает, останавливает глоток, а затем переходит к следующей команде.

в Zsh нажатие ctrl-c кажется, останавливает целую командную строку.

Цель моего использования этой строки – получить звуковое предупреждение, когда gulp перестает работать в фоновом режиме. (для пользователей, не являющихся малыми, команда say – это текст для преобразования конвертора)

One Solution collect form web for “Запуск одной команды за другой в zsh при нажатии Ctrl-C”

Вместо этого я предлагаю использовать функцию:

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

trap поймает Ctrl-C (сигнал прерывания) и запустит команду (т.е. ничего).

Обратите внимание, что || вместо ; – таким образом, если gulp выйдет нормально (вы не нажимали ctrl-c), тогда ничего не происходит, но если код выхода не равен нулю, тогда начнется команда.

Эта функция должна работать как в bash и в zsh , в дальнейшем вы можете удалить последнюю ; перед закрытием правого кронштейна.

  • Что делает ttyctl -f, и почему он позволяет управлять потоком в vim, mutt и т. Д.?
  • Сколько снарядов я глубоко?
  • Могу ли я подавить автозаполнение определенной категории в zsh?
  • Как удалить zsh keybinding, если я не знаю, что он делает?
  • tcsh vs zsh. Символы Escape / Control
  • Как включить обратный поиск в zsh?
  • Есть ли преимущество в использовании ksh над zsh?
  • Получить zsh, чтобы сообщить каталог emacs
  • Проблемы с Vim при использовании ZSH
  • Почему эта команда работает только для каждой другой строки?
  • Обратитесь к элементу `dirs`
  • Interesting Posts

    Задайте имя сеанса экрана в командной строке

    использование таймеров systemd вместо cron

    Невозможно изменить размер основного раздела на CentOS 7

    Предотвратите пробуждение мыши

    Группа процессов (сеанс) процессов GUI

    Что такое бесплатная, небольшая ОС Unix / Linux?

    Не удается обмениваться папками между Mac OS X на базе VMWare 7.1.1 и гостевой системой Fedora 21

    Понимание настроек Broadcom и файлов ядра

    Есть ли спецификация или определенная цель каталогов пользователей XDG на freedesktop.org?

    Я не могу загрузить ни один дистрибутив с USB / CD, чтобы установить или использовать его вживую

    Пакеты не пересекаются с IP-таблицами. Постобработка при исходящем из внешнего IP-адреса

    Spamassassin спам оценка и блок конфигурации?

    Debian не запрашивает пароль для зашифрованного диска при загрузке

    GParted LiveCD: Есть ли версия с 64-битным ядром?

    Можно ли управлять несколькими мониторами с одного CRTC?

    Linux и Unix - лучшая ОС в мире.