항상 실패로 종료되는 표준 명령이 있습니까?


42

실패한 명령으로 스크립트를 테스트하고 싶습니다. 잘못된 인수로 기존 명령을 사용할 수 있습니다. 또한 실패와 함께 즉시 종료되는 간단한 스크립트를 작성할 수도 있습니다. 이 두 가지 모두 수행하기 쉽고 작동하지만이 목적을위한 표준 명령이 있으면 대신 사용하고 싶습니다.


false존재하지 않는 명령도 있습니다.
Kusalananda

답변:


51

false( /bin/false, /usr/bin/false또는 쉘 내장)을 사용할 수 있습니다 .

$ false || echo It failed.
It failed.
$

exit 1서브 쉘에서 사용할 수도 있습니다 .

$ (exit 1) || echo Gosh, it failed too.
Gosh, it failed too.
$

또한 1-255 범위의 숫자로 exit를 호출 가능하게 호출 할 수 있습니다. (대부분의 쉘은 종료하기 위해 주어진 다른 숫자에 대해 모듈로 255 연산을 적용하므로 실제로는 앞서 언급 한 범위로 강제 변환되었지만 다른 숫자를 피할 수는 있지만 일부 쉘은 종료와 같은 다른 작업을 수행합니다. 음수 값으로 호출하면 구문 오류 (아직 실패 상태 임) 유닉스 계열 시스템은 0-255 범위의 종료 코드 만 지원하므로 주어진 다른 값에 대해 잘 정의 된 동작에 의존 할 수 없습니다 .) 모든 쉘에서 출구
mtraceur

1
그리고 약간의 사소한 일이지만 실제로 오래 ! :되거나 모호한 쉘에 이식성이 필요하지 않는 한 (또는 일반적으로 성공을 반환하는 다른 명령) 할 수도 있습니다 . !뒤에 오는 명령의 종료 상태를 무효화합니다. :항상 성공으로 종료되는 noop 내장 명령입니다. ( !명령을 무효화 한 후에 공백을 남겨 두십시오. 그렇지 않으면 !문자로 시작하는 하나의 명령으로 구문 분석 하거나 bash대화 형 모드 와 같은 쉘의 경우 구문 분석을 시도합니다. 그 특별한 역사 수정 자.)
mtraceur
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.