zsh - как сделать автоматический сброс сеанса при неверном выполнении команды; избегая сообщения «Сломанная труба» - PullRequest
0 голосов
/ 04 июля 2018

Я использую oh-my-zsh на iTerm2. Каждый раз, когда выполняется недопустимая команда, zsh показывает сообщение «Broken Pipe». Пожалуйста, смотрите скриншот ниже:

zsh-broken-pipe-message

Мне нужно вручную сбросить сессию, нажав «command + R» (Macbook), чтобы вернуть подсказку и начать снова использовать оболочку.

Я бы хотел, чтобы zsh / iTerm2 автоматически возвращал подсказку в случае выполнения недопустимой команды.

Есть ли какие-либо настройки / конфигурации, которые я могу сделать в zsh для достижения желаемого поведения?

РЕДАКТИРОВАТЬ: Мой iTerm настроен на использование zsh вместо оболочки входа в систему.

1 Ответ

0 голосов
/ 05 июля 2018

После некоторых исследований я нашел решение.

Мы можем использовать ловушку ОШИБКИ zsh для перезапуска оболочки в случае, если в команде есть ошибка или команда завершается со статусом ошибки.

Я написал в файле .zshrc следующее:

TRAPZERR() {
if [[ $? -gt 0 ]];then
     /Applications/iTerm.app/Contents/MacOS/iTerm2 --launch_shell
fi
}

И это сработало !!

...