Sayıları karşılaştırdığınız için, parametrelerin daha kolay işlenmesini ve karşılaştırılmasını sağlayan aritmetik bir ifade kullanabilirsiniz :
wget -q --tries=10 --timeout=20 --spider http://google.com
if (( $? != 0 )); then
echo "Sorry you are Offline"
exit 1
fi
Bunun yerine nasıl -ne
kullanabileceğinize dikkat edin !=
. Aritmetik bir bağlamda, $
parametrelere başlamamız bile gerekmez , yani,
var_a=1
var_b=2
(( var_a < var_b )) && echo "a is smaller"
mükemmel çalışıyor. Ancak bu $?
özel parametreye uygun değildir .
Ayrıca, (( ... ))
sıfır olmayan değerleri true olarak değerlendirdiğinden, yani sıfır olmayan değerler için 0 döndürme durumuna ve aksi takdirde 1 dönüş durumuna sahip olduğundan,
if (( $? )); then
ancak bu, kaydedilen tuş vuruşlarının değerinden daha fazla insanı karıştırabilir.
(( ... ))
Yapı Bash mevcuttur, ancak gerekli değildir POSIX kabuk tarifnamede (olsa da, olası bir uzantısı olarak söz).
Tüm bunlar söyleniyor, Cole'un cevabında ve Steven'ın cevabında$?
olduğu gibi bence tamamen kaçınmak daha iyidir .
if ! [[ ...
çalışır