SORU
4 Mart 2011, Cuma


Birkaç komutları etkin bir şekilde kontrol Bash çıkış durumu

Orada bir şey birden fazla komut için pipefail benzer bir' deyim ama bash. içinde 'denemek gibi. Böyle bir şey yapmak istiyorum:

echo "trying stuff"
try {
    command1
    command2
    command3
}

Ve herhangi bir noktada, herhangi bir komut başarısız olursa, bırak, ve o komutun hata yankılanacak. Gibi bir şey yapmak istemiyorum:

command1
if [ $? -ne 0 ]; then
    echo "command1 borked it"
fi

command2
if [ $? -ne 0 ]; then
    echo "command2 borked it"
fi

Ve diğerleri... ya da bir şey gibi:

pipefail -o
command1 "arg1" "arg2" | command2 "arg1" "arg2" | command3

İnanıyorum ki her komut bağımsız değişkenleri (eğer yanılıyorsam beni düzeltin) birbirlerine engel olacak çünkü. Bu iki yöntem burada daha etkili bir yöntem için başvuruyorum çok korkunç uzun soluklu ve bana kötü görünüyor.

CEVAP
4 Mart 2011, Cuma


Ve sizin için komut başlattı sınayan bir fonksiyon yazabilirsiniz:

function test {
    "$@"
    local status=$?
    if [ $status -ne 0 ]; then
        echo "error with $1" >&2
    fi
    return $status
}

test command1
test command2

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 99being99

    99being99

    2 EYLÜL 2008
  • Ben Schoon

    Ben Schoon

    23 Kasım 2012
  • thetrollska

    thetrollska

    2 EKİM 2009