2

C プログラムを 1000 回実行したいとします。このプログラムは基本的に、私が作成した単純なカーネルの機能をテストするテスト スクリプトです。失敗するたびに「SUCCESS」を出力します。追跡が困難なさまざまな競合状態のため、テストが失敗する前に文字通り数百回手動でテストを実行する必要があることがよくあります。このコマンドの実行に役立つ perl スクリプトまたは bash スクリプトをネットで検索してみましたが、無駄でした。

pintos -v -k -T 60 --qemu -j 2 --filesys-size=2 -p tests/vm/page-parallel -a page-parallel -p tests/vm/child-linear -a child-linear --swap-size=4 -- -q -f run page-parallel < /dev/null

コマンドを何かにパイプしてキーワードをチェックし、そのキーワードが表示された場合に停止/続行できるようにします。

誰でも私を正しい方向に向けることができますか?

4

1 に答える 1

1

bash では、while ループで実行できます。

while true; do
if "pintos -v -k -T 60 --qemu -j 2 --filesys-size=2 -p tests/vm/page-parallel -a page-parallel -p tests/vm/child-linear -a child-linear --swap-size=4 -- -q -f run page-parallel < /dev/null" | grep -c KEYWORD; then 
break
fi
done

コマンドの周りに必要な引用について100%確信が持てません。明らかに、特定のコマンドを実行できません。"" で囲む必要はないかもしれません。

grep -c一致をカウントします。0 の場合、KEYWORD が見つからなかったため、ループを再度実行します。> 0 の場合、KEYWORD が見つかり、ループが発生します。

于 2013-03-01T11:01:16.367 に答える