0
我写了下面的期待,以取代远程Linux机器上的IP地址如何远程主机上使用预计更换IP地址
我用perl的一个线性这个任务
我得到的错误脚本关于无法读取“首页”:没有这样的变量,
请指教我需要改变我的期望脚本,所以我会改变请求的IP?
#!/bin/ksh
expect_transfer=`cat << EOF
set timeout -1
spawn ssh 12.219.102.43
expect {
")?" { send "yes\r" ; exp_continue }
word: {send pass123\r}
}
expect # {send "export OLD=10.10.10.10 ; export NEW=1.1.1.1 ; perl -i -pe 's/\Q$ENV{OLD}\E/$1$ENV{NEW}$2/' /etc/hosts\r"}
expect # {send exit\r}
expect eof
EOF`
expect -c "$expect_transfer"
结果:
spawn ssh 12.219.102.43
[email protected]'s password:
Last login: Sun Aug 4 12:29:25 2013 from 12.219.102.43
[[email protected] ~]# can't read "HOME": no such variable
while executing
"send "export OLD=10.10.10.10 ; export NEW=1.1.1.1 ; perl -i -pe 's/\Q$HOME/.kshrc{OLD}\E/$HOME/.kshrc{NEW}/' /etc/hosts\r""
invoked from within
"expect # {send "export OLD=10.10.10.10 ; export NEW=1.1.1.1 ; perl -i -pe 's/\Q$HOME/.kshrc{OLD}\E/$HOME/.kshrc{NEW}/' /etc/hosts"
- 我会开心的线下得到的ksh脚本
'user @ 12.219.102.43'的默认shell是什么?仅仅是ksh,还是bash? – anishsane
您也在bash下标记了该问题。你可以使用基于bash的解决方案吗?或者你真的想要ksh解决方案(在这种情况下,你应该不用标记'bash')? – anishsane
我更喜欢ksh,因为我的脚本在ksh中构建 – maihabunash