kullanarak eğer yazdım işlevideyimin ve arama işlevin bash
check_log(){
if [ -f "/usr/apps/appcheck.log" ]
then
return 1
else
return 0
fi
}
sonra eğer durum
if [ check_log ];
then
........statements....
fi
olacak bu işte bu işlevi çağırmak olur? Kafam karıştı, çünkü bash geri dönüşünde başarı 0 ve başarısızlık durumunda 1. Ama işlevim 1'e dönüyor ve durum 1/0'ı kontrol ediyor, 1 oluyor ve hatalar vermeli, ancak kabuk komutumun durumu geçiyor.
Bu konudaki herhangi bir ışıktan kimse var mı?
Teşekkürler!
[bir sayı] bir şey yaparsa ve [0] – JumpOffBox
hiçbir şey yapmazsa bir sayıdan bahsedersek, bunun için sayısal bir bağlam kullanırsınız - değil [[] 'veya' [[]] 'ancak (()) '- gibi:' if ((değişken)); o zaman ... 'değişken' 0'dan büyük bir sayı içeriyorsa true olarak değerlendirecektir. –
... bu arada, "bash kullanarak", shebang'ınızın "#!/bin/bash" veya " #!/usr/bin/env bash 'değil, # #!/bin/sh'; ikincisiyse, tüm bash özellikleri etkin olmayacaktır, bu yüzden burada verilen tüm tavsiyeler geçerli olacaktır. –