免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14717 | 回复: 10
打印 上一主题 下一主题

shell脚本如何实现交互? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-01 16:04 |只看该作者 |倒序浏览
20可用积分
#!/bin/bash

clear

echo "BIOS Update"

echo -e '\n\n\n'

cd /home/u/update/BIOS/2008.04.14/
chmod 777 ./bios77889.scexe
./bios77889.scexe | tee -a /root/bios_update.log

echo “Press Any Key To Shutdown”
read -n1

echo “Shutdown”
init 0

#上面红字标出来的部分是网上的bios升级程序,该程序执行过程中需要用户输入三个"Y",但是脚本的目的是自动完成升级,然后自动关机,所以必须想办法完成自动交互。#

PS:bios77889.scexe升级程序中自带的有一个参数可以进行静默升级,但是如果选择静默升级,最后将不显示升级结果是否成功,可我需要看结果,然后任意键关机。

请哪位大侠来参谋参谋~~~

20分轻松拿走哈哈

小弟先谢谢啦!!!

最佳答案

查看完整内容

用expectexpect,send对能完成你的需要给你个简单例子,你就明白了spawn sftp $user@$hostexpect "assword:"send "$pass\r"expect "sftp>"send "lcd $ldir\r"expect "sftp>"send "cd $dir\r"expect "sftp>"send "$cmd\r"这是个简单的sftp自动交互的例子,你看看就应该能明白了

论坛徽章:
1
寅虎
日期:2015-01-23 02:35:47
2 [报告]
发表于 2008-07-01 16:04 |只看该作者
用expect

expect,send对能完成你的需要
给你个简单例子,你就明白了
spawn sftp  $user@$host
expect "assword:"
send "$pass\r"
expect "sftp>"
send "lcd $ldir\r"
expect "sftp>"
send "cd $dir\r"
expect "sftp>"
send "$cmd\r"

这是个简单的sftp自动交互的例子,你看看就应该能明白了

论坛徽章:
0
3 [报告]
发表于 2008-07-01 16:25 |只看该作者
可以用Expect来做(Tcl的一个Package).

一些版本的Linux里有一个叫ftp-rfc的命令,就是用这个来写的,可以参考一下。

根据你的要求,应该不难。

PS:  以前写过这种脚本,长时间没用,忘了。
PS2: 光说不练,见笑了。

论坛徽章:
0
4 [报告]
发表于 2008-07-03 21:27 |只看该作者
弱弱地问一下,

echo -e "Y\nY\nY\n" | ./bios77889.scexe | tee -a /root/bios_update.log

可以吗?

论坛徽章:
0
5 [报告]
发表于 2008-07-03 22:25 |只看该作者
yes是否可以?
如果可以,尝试yes。

论坛徽章:
0
6 [报告]
发表于 2008-07-06 00:05 |只看该作者
expect可以提供完美的方案。
上面提到的echo 方式对于上面的简单应用也好使。

论坛徽章:
0
7 [报告]
发表于 2008-07-06 08:53 |只看该作者
try
echo "yes" | ./bios77889.scexe -stdin

论坛徽章:
0
8 [报告]
发表于 2008-07-06 16:06 |只看该作者
高手都来了

spawn sftp  $user@$host
expect "assword:"
send "$pass\r"
expect "sftp>"
send "lcd $ldir\r"
expect "sftp>"
send "cd $dir\r"
expect "sftp>"
send "$cmd\r"


echo "yes" | ./bios77889.scexe -stdin

论坛徽章:
0
9 [报告]
发表于 2008-07-07 10:37 |只看该作者


一下子就想到expect 了, 在学校登录锐捷的时候用过

论坛徽章:
0
10 [报告]
发表于 2008-07-08 11:29 |只看该作者
except到是行,但是复杂点!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP