我一直在尝试将随机数据输入到一个程序中,该程序应该预测下一个正确的数字。我想为选项 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>