假设我想运行一个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
并将命令传递给要检查关键字的内容,以便在出现该关键字时停止/继续。
任何人都可以指出我正确的方向吗?
答案 0 :(得分: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,因此它再次运行循环。如果&gt; 0然后找到KEYWORD并且循环爆发。