Giriş
Son çalıştırılan komutun exit status değerini verir.
Bu değişkeni Kullanmamak
Açıklaması şöyle
SC2181: Check exit code directly with e.g. 'if mycmd;', not indirectly with $?.
Bir uygulamayı çalıştırıp döndürdüğü sonucu almak için şu yol izlenebilir
utility
# shellcheck disable=SC2181
if [ "$?" -eq 0 ]; then
echo ok
else
echo fail
fi
Ancak şöyle yapmak daha kolay
if utility; then
echo ok
else
echo fail
fi
Kullanma Örnekleri
Örnek
Şöyle yaparız.
Şöyle yaparız.
set -e ile ilk hata da bash'in devam etmemesi sağlanır. Ancak bazı komutların 0'dan farklı bir şey dönmesi durumunda şöyle yaparız. Böylece set -e dikkate alınmaz.
Örnek
Şöyle yaparız.
another_script.sh
exit_code=$?
ÖrnekŞöyle yaparız.
grep -q '/example.com' /opt/nfs || grep -Rq '/example.com' /data
if [ $? -eq 0 ]; then # check exit status
echo "Passed"
else
echo "Failed"
fi
Örnekset -e ile ilk hata da bash'in devam etmemesi sağlanır. Ancak bazı komutların 0'dan farklı bir şey dönmesi durumunda şöyle yaparız. Böylece set -e dikkate alınmaz.
#!/usr/bin/env bash
set -e
! docker stop foo
! docker rm -f foo
# ... other stuff