나는 최근에 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를 누르지 않은 경우) 아무 일도 일어나지 않지만 종료 코드가 0이 아니면 say
명령이 시작됩니다.
이 기능은 및 닫는 괄호를 닫기 전에 마지막 기능을 제거 할 수 있는 bash
두 가지 모두에서 작동 합니다.zsh
;