Запустить сценарий ожидания из другой оболочки

Моя цель – создать сценарий /var/tmp/add_user.bash из сценария /var/tmp/create_script_add_user.bash и запустить сценарий ожидания ( add_user.bash ) из сценария create_script_add_user.bash .

Проблема в том, что когда я запускаю скрипт add_user.bash из create_script_add_user.bash , тогда add_user.bash зацикливается на вопросе:

  Proceed? n) 

Похоже, что ожидание не может видеть вопрос со стандартного вывода. Но когда я запускаю скрипт /var/tmp/add_user.bash , он работает нормально.

Почему нельзя ожидать запуска из другого скрипта? И как решить эту проблему?

Содержимое /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 ) & 

Содержание /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" 

Я нахожу решение проблемы

необходимо запустить /var/tmp/add_user.bash без процесса "&"

пример

  #need sleep for 5 seconds sleep 5 source /var/tmp/add_user.bash 

теперь ожидаем получить строку « n » и отправить « y » в качестве ответа