注意:当我说选项 1 和选项 2 时,我的意思是选择选项 1,它将显示以下选项“输入数字 1 并输入数字 2”。

注意:当我说选项 1 和选项 2 时,我的意思是选择选项 1,它将显示以下选项“输入数字 1 并输入数字 2”。

我一直在尝试将随机数据输入到一个程序中,该程序应该预测下一个正确的数字。我想为选项 1 运行一个无限循环管道,该管道通向选项 2,并带有 c 的另一个选项以继续。这样做的原因是人工智能需要接受训练来预测随机生成的数字中发现的模式。

注意:当我说选项 1 和选项 2 时,我的意思是选择选项 1,它将显示以下选项“输入数字 1 并输入数字 2”。

这就是程序在 shell 中的样子。

Select your choice.

1. Enter the newest number.

2. Find a new number.


-------------------------------------------------------------------

Select your choice.

1. Enter the newest number.

2. Find a new number.


 Enter number 1. 

 Enter number 2. 

 Enter c to continue or 0 to quite 

我试图让管道开始工作,但失败了。

./RNGAI | echo "1" | shuf -i 1-26 -n1 | echo "2" | shuf -i 1-26 -n1 | echo "c" | ./RNGAI
./RNGAI | echo "1" | echo $((RANDOM%10))| ./RNGAI & echo "2" | echo $((RANDOM%10)) & echo "c" 

尝试一些管道后出现错误。这些管道在技术上确实可以工作,但是 RNGAI 程序每次使用管道运行循环时都会抛出错误 show -nan 。这是我尝试运行的管道和脚本

while true
do
echo 1
echo $ od -A n -N 2 -t u2  /dev/random
echo 2
echo $ od -A n -N 2 -t u2  /dev/random
echo c
done | ./RNGAI

这是管道

 while :; do printf "%s\n" 1  seq 1 26 | sort -R | head -n 1 2  seq 1 26     | sort -R | head -n 1 c; done | ./RNGAI
 while :; do printf "%s\n" 1 od -A n -N 2 -t u2  /dev/random 2 $od -A n -N 2 -t u2  /dev/random c; done | ./RNGAI
 while :; do printf "%s\n" 1 shuf -i 1-26 -n1 2 shuf -i 1-26 -n1 c; done | ./RNGAI

RNGAI 程序抛出错误

   Select your choice.

   1. Enter the newest number.

   2. Find a new number.

      Enter number 1. 
      Enter number 2. 
      -nan
      -nan
       Enter c to continue or 0 to quite 
       Enter number 1. 
       Enter number 2. 
       -nan
       -nan

答案1

我想你正在寻找这个:

while true
do
    echo 1
    echo $((RANDOM % 10))
    echo 2
    echo $((RANDOM % 10))
    echo c
done | ./RNGAI

或者更简洁地说:

while :; do printf "%s\n" 1 $((RANDOM % 10)) 2 $((RANDOM % 10)) c; done | ./RNGAI

您想将数据通过管道传输到程序中,然后输入管道:

<source of input> | <command that uses the input>

相关内容