/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)「並列に送ってください」ワイ「答えとして