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

  • FD2097

    FD2097

    21 HAZİRAN 2009
  • Lancome USA

    Lancome USA

    30 HAZİRAN 2009
  • undrmyumbrellaa

    undrmyumbrel

    25 Temmuz 2012