2

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"
3
  • thx Vonbrand - did you think it will be better to migrate my question to stack-overflow ? Commented Apr 3, 2013 at 13:56
  • Also asked on serverfault Commented Apr 3, 2013 at 20:43
  • hi gilles can you consider to deliver my question to stackoverflow Commented Apr 4, 2013 at 6:45

1 Answer 1

2

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

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.