Sen q kullanabilirsiniz n çıkış durumu ile çıkmak için n - ama bu kullanışlı hale getirmek için, ayrıca bazı kullanmanız gerekecektir Dallanma ve Akış Kontrolü :
t
dallı koşullu (yani bir etikete atla) yalnızca s///
son giriş satırı okunduğundan beri bir komut başarılı olduysa veya başka bir koşullu dal alındıysa.
N için , standart çıkış durumu değerlerinden birinden farklı bir değer seçmek en iyisidir :
Sıfır çıkış durumu başarıyı, sıfır olmayan bir değer ise başarısızlığı belirtir. GNU 'sed' aşağıdaki çıkış durumu hata değerlerini döndürür:
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.
Yani mesela
$ echo "foo.bar" | sed 's/bar.*$//; t; q42' ; echo $?
foo.
0
buna karşılık
$ echo "foo.bar" | sed 's/baz.*$//; t; q42' ; echo $?
foo.bar
42
Eğer desen alanının baskı varsayılan ihmal etmek istiyorsanız, o zaman değiştirin q
tarafından Q
(not Q
bir GNU).
sed
Kesinlikle bir çıkış durumu olduğunu unutmayın, burada ihtiyacınız olanı yapmaz. Eğersed
komut başarısız bir dosya üzerinde çalıştırmak çalışırsanız, örneğin, sen yazma erişimi veya yok bir yoksed
olmayan bir 0 çıkış durumu ile çıkılacak. Çıkış durumu, yalnızcased
size söylediklerinizi yapmayı başarabildiğini veecho "foo.bar" | sed 's/pop.*$//'
doğru bir şekilde yürütüldüğünü gösterir. İle tüm satırları sildipop
. Bu tür hatların alakasız olması, komut hala işe yaradı.