당신은 Q를 사용할 수 없음 종료 상태로 종료 N -하지만 유용하게하기 위해, 당신은 또한 일부 사용할 필요가 분기 및 흐름 제어 :
t
마지막 입력 행을 읽거나 다른 조건부 분기를 수행
한 후 s///명령이 성공한 경우에만 조건부 분기 (즉, 레이블 로 이동).
표준 종료 상태 값 중 하나와 다른 n 값을 선택하는 것이 가장 좋습니다 .
종료 상태가 0이면 성공을 나타내고 0이 아닌 값은 실패를 나타냅니다. GNU 'sed'는 다음과 같은 종료 상태 오류 값을 반환합니다.
0
Successful completion.
1
Invalid command, invalid syntax, invalid regular expression or a
GNU 'sed' extension command used with '--posix'.
2
One or more of the input file specified on the command line could
not be opened (e.g. if a file is not found, or read permission is
denied). Processing continued with other files.
4
An I/O error, or a serious processing error during runtime, GNU
'sed' aborted immediately.
예를 들어
$ echo "foo.bar" | sed 's/bar.*$//; t; q42' ; echo $?
foo.
0
이므로
$ echo "foo.bar" | sed 's/baz.*$//; t; q42' ; echo $?
foo.bar
42
당신이 패턴 영역의 기본 인쇄를 생략 할 경우, 교체 q에 의해 Q(주 QGNU 확장이다).
sed가장 확실하게 종료 상태를 가지고, 그냥 당신이 여기에서 필요하지 않습니다.sed예를 들어, 쓰기 액세스 권한이 없거나 존재하지 않는 파일 에서 명령을 실행하려고하면sed0이 아닌 종료 상태로 종료됩니다. 종료 상태는sed사용자가 지시 한 작업을 수행했는지,echo "foo.bar" | sed 's/pop.*$//'제대로 실행되었는지 를 나타냅니다 . 로 모든 줄을 삭제했습니다pop. 그런 줄이 없었기 때문에 명령은 여전히 효과가있었습니다.