Senaryoyu ile çağırmak olacaksa source
, kullanabilirsiniz return <x>
nereye <x>
komut çıkış durumu (hata veya yanlış bir sıfır olmayan bir değer kullanmak) olacaktır. Ancak, yürütülebilir bir komut dosyasını (yani doğrudan dosya adıyla) çağırırsanız, return ifadesi bir şikayet ile sonuçlanır (hata iletisi "return: yalnızca bir işlevden veya kaynaklı komut dosyasından` `geri dönebilir").
Eğer exit <x>
bunun yerine kullanılan komut dosyası çalıştırıldığında, source
bu senaryoyu başladı kabuktan çıkan sonuçlanacaktır, ancak beklendiği gibi çalıştırılabilir bir komut dosyası sadece sona erer.
Aynı komut dosyasında her iki durumu da ele almak için şunu kullanabilirsiniz:
return <x> 2> /dev/null || exit <x>
Bu, hangi çağrının uygun olabileceğini ele alacaktır. Bu ifadeyi komut dosyasının en üst düzeyinde kullanacağınız varsayılmaktadır. Komut dosyasının bir işlev içinden doğrudan çıkmasını önermem.
Not: <x>
sadece bir sayı olması gerekiyordu.
1
tutarlı bir şekilde kullanabilirsiniz . Komut dosyasının başka bir komut dosyası tarafından çalıştırılması gerekiyorsa, kendi durum kodu kümenizi belirli bir anlamla tanımlamak isteyebilirsiniz. Örneğin,1
== test başarısız,2
== derleme başarısız. Komut dosyası başka bir şeyin parçasıysa, kodları orada kullanılan uygulamalarla eşleşecek şekilde ayarlamanız gerekebilir. Örneğin, test paketinin bir kısmı automake tarafından çalıştırıldığında,77
atlanan bir testi işaretlemek için kod kullanılır.