我有要求用户输入一些值的二进制,像这样:在bash中,有标准输入执行脚本时,如何自动输入值?
./binary
Please enter some value:
我想完成这项任务,并给出了一个循环二进制数的值:
for i in (1...1000)
do
./binary
// Some function to give $i as a value
done
待办事项你有什么想法?
感谢
我有要求用户输入一些值的二进制,像这样:在bash中,有标准输入执行脚本时,如何自动输入值?
./binary
Please enter some value:
我想完成这项任务,并给出了一个循环二进制数的值:
for i in (1...1000)
do
./binary
// Some function to give $i as a value
done
待办事项你有什么想法?
感谢
因为它是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
理想情况下,你不会捕获输出,后来检查,但是如果你正在寻找一个特定的字符串(而不是退出代码),这是很长的路要走。
for i in {1..1000}
do
echo $i | ./binary
done
没有“$”,在循环表达我以前(我在我的职务,我只是编辑犯了一个错误),但即使没有$我有错:“击:语法错误附近意外的标记'( “” – adrTuIPKJ44
有在我的例子中,没有括号,我使用{} :) – negacao
好,和最后一个问题:我怎么能只显示与二进制(让我们的选择的输出occurence说,我只有一个‘OK’从./binary some_number) – adrTuIPKJ44
消息,因为它是一个相当小的修改,我将修改这个答案。但是,一般来说,你应该修改你的问题或者询问另一个问题。 –
非常感谢! – adrTuIPKJ44