Execute o script esperar de outro shell

2

Meu objetivo é criar o script /var/tmp/add_user.bash do script /var/tmp/create_script_add_user.bash e execute o script expect ( add_user.bash ) do script create_script_add_user.bash .

O problema é que, quando executo o script add_user.bash de create_script_add_user.bash , a expectativa fica presa na pergunta:

      Proceed? n) 

Parece que não é possível ver a pergunta da saída padrão. Mas quando eu executo o script /var/tmp/add_user.bash , ele funciona bem.

Por que não posso esperar executar o outro script? E como resolver esse problema?

Conteúdo de /var/tmp/create_script_add_user.bash

   #!/bin/bash


   echo '#!/bin/bash


   add_user='cat << EOF
   set timeout -1
   spawn /var/tmp/add_user.bash user_name=OBAMA
   expect n)   { send "yes\r" }
   expect eof
   EOF'

    /usr/local/bin/expect -c  "$add_user"

    '> /var/tmp/add_user.bash

    chmod +x /var/tmp/add_user.bash

    #need sleep for 5 seconds
    ( sleep 5 ; /var/tmp/add_user.bash ) &

Conteúdo de /var/tmp/add_user.bash

 #!/bin/bash

 add_user='cat << EOF
 set timeout -1
 spawn /var/tmp/add_user.bash user_name=OBAMA
 expect n)   { send "yes\r" }
 expect eof
 EOF'

 /usr/local/bin/expect -c  "$add_user"
    
por yael 03.04.2013 / 13:42

1 resposta

2

Eu acho a solução para o problema

precisa executar o /var/tmp/add_user.bash sem o processo "&"

exemplo

       #need sleep for 5 seconds

       sleep 5

       source /var/tmp/add_user.bash

agora espere receber a string " n) " e enviar " y " como resposta

    
por 04.04.2013 / 12:53