linux脚本里用expect,如何在bash脚本中使用expect
這是我在
following bash腳本中使用的代碼片段:
for user_input in `awk '{print}' testfile_$$.txt`
do
ipaddress=`echo $user_input | cut -d';' -f 1`
command="${config_mode}`echo $user_input | cut -d';' -f 2-`"
ping -w 1 $ipaddress 1> /dev/null 2> $ERR_LOG_FILE 1> $LOG_FILE
if [ $? -eq 0 ];then
ssh "$USERNAME@$ipaddress" "$command"
>> $LOG_FILE
fi
done
我如何使用expect在此腳本中自動執行ssh登錄.
我很期待并開始測試它(它失敗了):
#!/usr/bin/bash
set force_conservative 0 ;# set to 1 to force conservative mode even if
;# script wasn't run conservatively originally
if {$force_conservative} {
set send_slow {1 .1}
proc send {ignore arg} {
sleep .1
exp_send -s -- $arg
}
}
#
set timeout -1
spawn ssh auto21@10.38.227.229 {uname -a; df -h}
match_max 100000
expect "*?assword: "
send -- "bar01\r"
expect eof
我是否需要在expect腳本中重新編寫bash腳本,或者它可以在bash腳本中使用
如果可以的話:
更多我需要獲取bash變量$command,$username,$password,$ipaddress并在期望部分中使用它
你會建議什么解決方案?
要么
我可以創建一個expect腳本并從bash腳本調用它只是為了登錄,錯誤處理,執行,日志文件
總結
以上是生活随笔為你收集整理的linux脚本里用expect,如何在bash脚本中使用expect的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Res2Net: A New Multi
- 下一篇: 程序开发里面的profile 是什么意思