私は次の正確な数を予測するプログラムにランダムなデータを供給しようとしてきました。続行するには、別のオプションcを使用してオプション2にリンクされているオプション1に対して無限ループパイプラインを実行したいと思います。その理由は、ランダムに生成された数字に見られるパターンを予測するためにAIを訓練する必要があるためです。
注:オプション1とオプション2はオプション1を選択することを意味し、「1番と2番を入力してください」というオプションが表示されます。
これがシェルのプログラムの外観です。
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>