Shell üzerinde yazdığınız herhangi bir komut isteminin problemsiz çalışıp sonlandığını test etmek adına komut satırı sonuna pipe ile echo $? ekleriz.Aynı zamanda bash üzerinde conditional bir kod yazdığınızı varsayalım.Processing aksiyonu gerçekleşmiş komutun fail durumuna uğrayıp uğramadığını integar bir değer ile eşleyerek bulabiliyoruz.Eğer yazdığınız komut ile herhangi bir verbose döndüremiyorsanız, sonucu $?’nin döneceği integar bir değer(0) ile verify etmek mümkün.
Verified ise: 0
Failed ise : 1
(?) çıktıları ne anlam ifade eder?
(0) > Her şey normal.Problem yok.
(1) > Genel olarak küçük düzeyde hatalar olduğu belirtilir.
(2) > Genel olarak komut istemi sonrası ciddi düzeyde hata meydana gelirse
ilgili değer döner.Örneğin komut satırı içerisinde kullanılıp ulaşılamayan bir argüman gibi.
“$?” satırının örnek bir conditional betik içerisindeki değişkene atanıp kullanılması.
#!/bin/bash dir=/tmp/xlogs date=$(date +"%d-%m-%Y") cp $xfile $date-xfile_log_ run="echo $?" copylog=`mv *log_ $dir && $run` if [ $copylog = 0 ] then echo "Success!" else echo "Failed!" exit -1 fiShare on Facebook