2014-02-17 1 views
1

내가 할 경우는 zsh을 명령 할 계획이없는 bleh을 실행하는 것을 의미하기 때문에명령 대체가 실패 할 때 zsh 전체 라인을 실패하게 만드는 방법?

$(blah) bleh 

나는,이 날 조금 걱정이있다

zsh: command not found: blah 
zsh: command not found: bleh 

얻을; 실행 가능하고 내가 원하지 않는 일을한다면 어떨까요?

blah 오류가 발생하면 전체 회선이 실패하는 방식이 있습니까? 실패에 종료됩니다 명령을 분리하는 &&를 사용

답변

0

:

$(blah) && bleh

+0

단지 치환 명령 단일 명령으로 사용하십시오. 예를 들어'$ (echo cat)/dev/null'과 같습니다. – Owen

1

blehblah이 존재하지 않는 경우 $(blah)가 빈 문자열로 대체됩니다 있다는 것입니다 시도한 이유. 이 경우 bleh은 완전히 구문 분석 된 명령 줄의 첫 단어이므로 명령으로 해석됩니다.

그래서 빈 문자열을 잡아서 추가 실행을 막아야합니다. 존재하지 않는

${$(blah):?No such thing} bleh 

blah 경우가 아닌 경우, zsh을이 쉘을 No such thing를 인쇄하고 프롬프트로 돌아갑니다 (또는 종료됩니다 : 고맙게도 zsh을 즉, 단지 그 경우에 사용할 수 ${name:?word}을 [매개 변수 확장을 가지고 -interactive) :

다른
zsh: : No such thing 

그 것이다 실제로 명령을 분리하지만 execu을 찾는 게 아니에요

% alias blah="echo echo '>>>'" 
% ${$(blah):?No such thing} bleh 
>>> bleh