Linux
從其他 shell 執行期望腳本
我的目標是從腳本創建腳本並
/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
,expect 會卡在這個問題上: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 ”作為答案