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

  • MC JIN'S OLD YouTube CHANNEL

    MC JIN'S OLD

    2 Kasım 2008
  • bobinire

    bobinire

    24 EYLÜL 2006
  • gsipek

    gsipek

    20 Temmuz 2007