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
fi
Share on Facebook

Leave a reply

required

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>