Ctrl-C를 누른 상태에서 zsh에서 명령 후 명령 실행

Ctrl-C를 누른 상태에서 zsh에서 명령 후 명령 실행

나는 최근에 zsh( bashOSX에서) 이사했습니다. bash에서 하나의 프로그램을 실행한 다음 다른 프로그램을 실행하는 데 사용하는 bash 별칭이 있습니다(이전 프로그램이 오류로 종료되더라도). zsh에서 이것을 복제하는 방법을 모르겠습니다.

복사하려는 bash 별칭은 다음과 같습니다.

gulp ; say "Gulp has crashed"

zsh에서 이것을 다시 작성하는 방법을 아는 사람이 있습니까?

편집하다:

zsh내가 얻는 차이점 bash은 gulp가 실행되는 동안 Bash를 누르면 ctrl-cgulp가 중지되고 다음 명령이 계속된다는 것입니다.

Zsh를 누르면 ctrl-c전체 명령줄이 중지되는 것 같습니다.

이 줄을 사용하는 목적은 gulp가 백그라운드에서 실행을 멈출 때 소리 경고를 받는 것입니다. (Mac 사용자가 아닌 경우 say 명령은 텍스트 음성 변환기입니다.)

답변1

대신 함수를 사용하는 것이 좋습니다.

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

("인터럽트" 신호)을 trap포착 하고 명령을 실행합니다(즉, 아무것도 하지 않습니다).Ctrl-C:

||또한 정상적으로 종료 ;하면 gulp(ctrl-c를 누르지 않은 경우) 아무 일도 일어나지 않지만 종료 코드가 0이 아니면 say명령이 시작됩니다.

이 기능은 및 닫는 괄호를 닫기 전에 마지막 기능을 제거 할 수 있는 bash두 가지 모두에서 작동 합니다.zsh;

관련 정보