我有一个二进制文件,要求用户输入一些值,如下所示:
./binary
Please enter some value:
我想自动执行此任务,并在循环中为二进制文件提供多个值:
for i in (1...1000)
do
./binary
// Some function to give $i as a value
done
你有什么想法吗?
由于
答案 0 :(得分:1)
for i in {1..1000}
do
echo $i | ./binary
done
答案 1 :(得分:0)
因为它是bash,所以这里有一个字符串。
for i in {1..1000}; do
./binary <<< "$i"
done
选择是否重定向或使用管道时,请考虑amount of data。
回应您的评论:处理此问题的最佳方法是修改./binary
,以便进行错误处理。我假设你不能给出这个名字,所以这就是我要做的事情。
对于具有此逻辑的./binary
:
#!/bin/bash
read var
if (( var == 4 )); then
echo "OK"
exit 0
else
echo "NOT OK"
exit 1
fi
此循环仅输出4
。
for i in {1..10}; do
if [[ $( ./binary <<< $i ) == "OK" ]]; then
echo $i
fi
done
理想情况下,你不会捕获输出并在以后检查它,但如果你正在寻找一个特定的字符串(而不是退出代码),这是一种方法。