Run expect script from other shell

6,839

I find the solution for the problem

need to run the /var/tmp/add_user.bash without the process " & "

example

       #need sleep for 5 seconds

       sleep 5

       source /var/tmp/add_user.bash

now expect get the "n)" string and send "y" as answer

Share:
6,839

Related videos on Youtube

yael
Author by

yael

Updated on September 18, 2022

Comments

  • yael
    yael over 1 year

    My target is to create the /var/tmp/add_user.bash script from /var/tmp/create_script_add_user.bash script and run the expect script (add_user.bash) from create_script_add_user.bash script.

    The problem is that when I run the script add_user.bash from create_script_add_user.bash, then expect gets stuck on the question:

          Proceed? n) 
    

    It looks like expect can't see the question from standard output. But when I run the script /var/tmp/add_user.bash, then it works fine.

    Why can't expect run from the other script? And how to solve this issue?

    Contents of /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 ) &
    

    Contents of /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"
    
    • yael
      yael about 11 years
      thx Vonbrand - did you think it will be better to migrate my question to stack-overflow ?
    • Angel Todorov
      Angel Todorov about 11 years
      Also asked on serverfault
    • yael
      yael about 11 years
      hi gilles can you consider to deliver my question to stackoverflow