最近,我参与了使用csh shell在SunOS上编写shell脚本。我会有多个查询,但首先是短程序无效。
[username]% expect - << EOF
Spawn telnet 74.125.71.103
expect "Password:"
send "google\r"
EOF
弹出以下错误:
/bin/csh: Event not found
[username]% expect: Command not found
请告知。
此脚本应按以下方式运行:
类型1 //“MB站”菜单选项将打开,即
类型2 // UC菜单选项将打开,即
1 - 更改密码
2 - 重置
类型1 //更改密码菜单选项将打开,即
1 - 更改PC密码
2 - 更改LU密码
3 - 更改管理员密码
键入3 //更改ADMIN passwd
MB站 - 更改管理员密码
输入新密码:XYZ输入
重新输入密码:XYZ输入
接受新密码
3次逃脱//逃离telnet
1.MB站
2. RC
3. ODU
4. AP
5. SU
6.退出
输入6 //退出
出口? [是/否] y
与主机的连接丢失。
然后转向使用不同IP的步骤。一旦用户在提示时执行脚本,IP值将由用户给出,例如./pass-change IPs.txt
答案 0 :(得分:1)
Event not found
消息暗示您正在尝试进行某种历史记录替换。这通常涉及!
字符。你在某个时候输入了!
字符的东西吗?
而expect: Command not found
就是它所说的:shell无法找到expect
命令。它安装了吗?如果没有,您应该安装它,或者请系统管理员为您安装,或者,如果失败,obtain the source并在您的主目录下构建并安装它。
一旦你解决了这个问题,就会有一个名为spawn
的expect命令,它区分大小写; Spawn
将无法识别。
如果您明确询问如何在不使用expect
的情况下完成上述,请更新您的问题以明确说明。
答案 1 :(得分:0)
我下面有一个工作脚本,你收到错误,因为我相信你正试图用sh或其他命令运行脚本。尝试将其作为./script运行。我使用下面的示例脚本进行文件传输但是我通过ssh来回做了一次密钥交换,这是一次性活动。 #!/ usr / bin / expect -f 设置超时130 spawn ssh“idk@server.com” 期待“密码:” 发送“pass @ 1234 \ r” 期待“$” 发送“sh /home/nathalok/HTML/run.sh\r” 期待“$” 发送“exit \ r”