Que tipo de pipe funcionará para inserir dados aleatórios em um programa compilado para a opção 1 e a opção 2 ao mesmo tempo? [fechadas]

0

Eu tenho tentado canalizar dados aleatórios em um programa que deve prever o próximo número correto. Eu quero executar um pipe de loop infinito para a opção 1, que leva à opção 2 com outra opção com c para continuar. A razão disso é que o AI deve ser treinado para prever padrões encontrados em números gerados aleatoriamente.

NOTA: Quando, digo opção 1 e opção 2 i significa que, ao selecionar a opção 1, ele exibirá as seguintes opções "digite o número 1 e insira o número 2.

É assim que o programa se parece no 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 

Pipes que tentei trabalhar, mas falhei.

./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" 

Eu tenho um erro depois de tentar alguns canos. Os pipes funcionam tecnicamente, no entanto, o programa RNGAI gera erros e mostra -nan toda vez que executa o loop com o pipe. Aqui estão os canais e scripts que tentei executar

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

Aqui estão os tubos

 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

Erro no lançamento do programa 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
    
por Travis Wells 21.06.2017 / 05:20

1 resposta

3

Acho que você está procurando por isso:

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

Ou mais concisamente:

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

Você deseja enviar dados para um programa e, em seguida, a entrada vem antes do canal:

<source of input> | <command that uses the input>
    
por 21.06.2017 / 06:57

Tags