シェルコマンドを失敗するまで繰り返し実行しますか? 質問する

シェルコマンドを失敗するまで繰り返し実行しますか? 質問する

私は書いたファジー信頼性の低い失敗するテスト。デバッグ コードをいくつか追加しましたが、デバッグ出力を収集できるように、失敗するまでテストを実行したいと思います。

以下を使用してテストを実行できるように設定しました:

./runtest

私の現在の解決策は、スクリプトを書くことですuntilfail:

#!/bin/bash
$@
while [ $? -eq 0 ]; do
    $@
done

次にそれを使用します:

untilfail ./runtest

もっと簡単な解決策はありますか?

ベストアンサー1

while実行するコマンドが必要なので、よりシンプルな

while ./runtest; do :; done

これにより、ゼロ以外の終了コード (通常は失敗を示す)./runtestが返されたときにループが停止します。

ただし、現在のソリューションをさらに簡素化するには、untilfail スクリプトを次のように変更するだけです。

#!/bin/bash

while "$@"; do :; done

そして、すでに使用しているコマンドでそれを呼び出すことができます。

untilfail ./runTest --and val1,val2 -o option1 "argument two"

おすすめ記事