【发布时间】:2016-11-14 18:25:46
【问题描述】:
如果可执行文件输出某个字符串,我如何使用 sh 脚本进行测试?我使用./program 运行可执行文件,它会打印到控制台hello 或goodbye。我想运行它 1000 次并计算每个输出出现的次数。
#!/bin/sh
count=0
secs=60 # Set interval (duration) in seconds.
endTime=$(( $(date +%s) + secs )) # Calculate end time.
while [ $(date +%s) -lt $endTime ]; do # Loop until interval has elapsed.
if [[ ./program = *hello* ]]; then
count++
fi
done
编辑(根据给出的答案部分修复a):
#!/bin/sh
winCount=0
totalCount=0
secs=60 # Set interval (duration) in seconds.
endTime=$(( $(date +%s) + secs )) # Calculate end time.
while [ $(date +%s) -lt $endTime ]; do # Loop until interval has elapsed.
totalCount++
case $(./program) in
*\[1\]\ \[1\]\ \[1\]* )((winCount++)) ;;
esac
done
echo "wins=$winCount"
echo "total=$totalCount"
【问题讨论】:
-
至少编辑您的 Q 以显示您建议如何运行程序 1000 次。祝你好运。
-
真的需要运行一分钟,我只是想简化问题。我会用代码编辑。
-
((totalCnt++))好吗? ;-) 祝你好运 -
您的问题中
edit:部分的意义是什么?如果那是对@shelter 的回应,请添加备注以解释其存在的原因(或直接删除第一个副本)。
标签: if-statement sh counter executable