對於獲取多台server狀態且不用交互須要用到expect,但有時候expect無法獲取返回值。這里解釋一下expect怎樣獲取返回值
expect -c "
spawn $1;
expect {
\"(yes/no)?
\" {send \"yes\n\";expect \"assword:\";send \"$2\n\"}
\"assword:\" {send $2\n}
eof
}
expect eof
catch wait result;
exit [lindex \$result 3]"
我們能夠在腳本里面這樣定義。注意最以下的result
這里須要加上轉義字符\$。否則會把$result解析成shell里面的變量,但這里面的$result是須要expect解析的。
