2013-03-01 39 views
2

假設我想運行一個C程序1000次,這個程序基本上是一個測試腳本,用於測試我編寫的簡單內核的功能。它每次失敗都會輸出一個「SUCCESS」。由於各種競爭條件難以追查,我們經常需要在失敗之前手動運行測試幾百次。我曾嘗試是徒勞搜索網perl腳本或bash腳本,可以幫助我們運行這個命令:如何將程序的cmdline輸出管道多次運行並在出現關鍵字時停止運行?

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 

和管道命令的東西來檢查關鍵字,因此它可以暫停/繼續,如果出現該關鍵字。

任何人都可以將我指向正確的方向?

回答

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並且循環發生。

+0

謝謝!我對命令的引用對我來說不是必需的。這個命令對我來說非常合適: while true;如果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運行page-parallel | grep -c「exit(-1)」;然後 中斷 fi 完成 – cchio 2013-03-02 00:33:14

相關問題