在bash中,当使用stdin执行脚本时,如何自动输入值?

在bash中,当使用stdin执行脚本时,如何自动输入值?,bash,Bash,我有一个二进制文件,要求用户输入一些值,如下所示: ./binary Please enter some value: 我想将此任务自动化,并在循环中为二进制文件提供几个值: for i in (1...1000) do ./binary // Some function to give $i as a value done 你知道吗 谢谢既然是bash,就用here字符串吧 for i in {1..1000}; do ./binary <<< "$i" done

我有一个二进制文件,要求用户输入一些值,如下所示:

./binary
Please enter some value: 
我想将此任务自动化,并在循环中为二进制文件提供几个值:

for i in (1...1000)
do
./binary 
// Some function to give $i as a value
done
你知道吗


谢谢

既然是bash,就用here字符串吧

for i in {1..1000}; do
  ./binary <<< "$i"
done
此循环将仅输出
4

for i in {1..10}; do
  if [[ $( ./binary <<< $i ) == "OK" ]]; then
    echo $i
  fi
done
{1..10}中i的
;做

如果[[$(./binary)在循环表达式中的i之前没有“$”(我在帖子中犯了一个错误,我只是编辑了),但即使没有$i have和error:“bash:syntax error near unexpected token`(“”)在我的示例中没有括号;我正在使用{}.)好的,还有最后一个问题:我如何仅显示所选二进制输出的occurence(假设我只有一条来自./binary some_number的“Ok”消息),因为这是一个相当小的修改,我将编辑此答案。不过,一般来说,您应该修改您的问题或询问另一个问题。
#!/bin/bash

read var
if (( var == 4 )); then
  echo "OK"
  exit 0
else
  echo "NOT OK"
  exit 1
fi
for i in {1..10}; do
  if [[ $( ./binary <<< $i ) == "OK" ]]; then
    echo $i
  fi
done