/var/tmp/add_user.bash
내 목표는 스크립트에서 스크립트를 만들고 /var/tmp/create_script_add_user.bash
스크립트에서 기대 script()를 실행하는 것입니다.add_user.bash
create_script_add_user.bash
문제는 add_user.bash
Expect 에서 스크립트를 실행할 때 create_script_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"
답변1
문제의 해결책을 찾았습니다
" & " 프로세스를 사용하지 않고 /var/tmp/add_user.bash를 실행해야 합니다.
예
#need sleep for 5 seconds
sleep 5
source /var/tmp/add_user.bash
이제 "를 얻을 것으로 예상됩니다.N)"병렬로 보내세요"와이"대답으로