Coloca automaticamente o conteúdo para leitura no bash

1
Oi eu tenho um pequeno script bash e antes eu costumava digitar o conteúdo em um pouco como responder a uma pergunta, mas o que eu gostaria de fazer é apenas executar o script bash e em vez de responder a pergunta seria apenas colocar o responder automaticamente em.

    echo "
Please type in your name "

echo $name > /root/details/name.info
echo "
Your name is $name ! "

echo "
    What is your age "
    read age
    echo $age > /root/details/age.info

echo "
This server will carry out a complete maintenance routine daily
Enter the time at which this routine should happen :
Example : Eleven o'clock is 23 , midnight is 00 , three in the morning is 03 ...
Based on the example , enter the time of maintenance with a decimal number 00-23
Please note: ( 00/23 )"

echo $HorMan>

echo "
    Please enter  your username e.g. admin"
    read username
    echo $username > /root/details/username.info

No código acima, Name e Age seriam diferentes em cada execução de script, mas a manutenção do servidor e o nome de usuário seriam os mesmos em todas as execuções de script.

    
por Chris Jakson 10.07.2016 / 22:01

1 resposta

1

Coloque as respostas das perguntas em um arquivo de texto, uma resposta por linha, na ordem correta.

Em seguida, execute seu script:

$ ./script.sh <answers.txt

EDITAR : após a pergunta atualizada.

Se alguma das entradas do script for estática, não as leia no script (substitua por dados estáticos) ou tenha um segundo script que preencha esses valores:

$ ./answerscript.sh <answers.txt | ./script.sh

O answers.txt contém nomes e idades em linhas alternadas, enquanto o answerscript.sh faz o seguinte:

#!/bin/sh

IFS=
while read name; do
  echo $name
  read age
  echo $age
  echo 23
  echo enoch
done

( 23 e enoch é a hora e o nome de usuário que é estático).

BTW, seu script, como está escrito agora, não lerá o nome nem a hora.

    
por 10.07.2016 / 22:07