Hatalı bir komuttan "0" çıkış kodunu döndürmek istiyorum.Çıkış kodu 0 başarısız bir komuttan nasıl döndürülür
function a() {
ls aaaaa 2>&1;
}
if ! $(a); then
return 0
else
return 5
fi
Hatalı bir komuttan "0" çıkış kodunu döndürmek istiyorum.Çıkış kodu 0 başarısız bir komuttan nasıl döndürülür
function a() {
ls aaaaa 2>&1;
}
if ! $(a); then
return 0
else
return 5
fi
Basitçe her zaman başarılı çıkmak için bir işlev zorlamak için işleve return 0
ekleyin: ziyade, bunu yapmanın daha kolay bir yolu var mı.
function a() {
ls aaaaa 2>&1
return 0
}
a
echo $? # prints 0
Eğer komutuna || true
ekleyebilirsiniz herhangi bir nedenle satır içi yapmak isterseniz:
ls aaaaa 2>&1 || true
echo $? # prints 0
Eğer !
! ls aaaaa 2>&1
echo $? # prints 0
! ls /etc/resolv.conf 2>&1
echo $? # prints 1
ile çıkış statü basit veya Başına komutunu ters isterseniz
Ayrıca, genel olarak ne elde etmeye çalıştığınızı belirtirseniz, sizi daha iyi cevaplara yönlendirebiliriz.
Dosya yoksa ls /etc/resolv.conf 2> & 1 'konsolda çirkin bir hata atacak :) – Inian
. Çıktının tamamı, '2> & 1' yerine' &>/dev/null' ya da stderr ile değiştirilerek yalnızca 2>/dev/null' ile değiştirilerek bastırılabilir. –
Geri dönüş hakkında ne dersiniz? a ' – user000001
Komut ikamesine gerek yok basit kullanım 'if! a; o zaman ... '' – andlrc
'stderr' çıktısı' stdout''a yazılırsa, komut başarısızlığı durumunda komut, komut çıktısını susturarak ve yalnızca komut yürütme durumunu alarak önlenebilecek kötü bir hata verir. '$?' – Inian