免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2581 | 回复: 4

[其他] 问个expect的问题 [复制链接]

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
发表于 2013-12-17 20:18 |显示全部楼层
目前有这样一个需求,需要通过程序生成一些文件,再用另一个程序逐个对这些文件进行处理,但是这个程序需要交互,所以我想使用shell调用except脚本。

但是有几个问题我没想明白,也没找到样例,我的问题是:
1、shell如何传参给except脚本?
2、except脚本中是否能使用awk或sed这种系统命令?
3、set一个变量能否用另一个变量再做一些操作
比如 set password "123"
set repassword "$password"+"123"

求高手指点。谢谢!

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
发表于 2013-12-18 17:46 |显示全部楼层
哦,难道真的没人知道吗?

论坛徽章:
1
IT运维版块每日发帖之星
日期:2015-12-16 06:20:00
发表于 2013-12-19 03:10 |显示全部楼层
我做过一个自动登陆的脚本,是把except脚本写成函数,写在shell里面,然后shell直接往函数传递参数就可以。$1就是参数一,$2就是参数二。
except用send之后,应该是可以用linux的指令的吧。。。

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
发表于 2013-12-19 11:12 |显示全部楼层
nathanielwen 发表于 2013-12-19 03:10
我做过一个自动登陆的脚本,是把except脚本写成函数,写在shell里面,然后shell直接往函数传递参数就可以。 ...


how 啊?求示例。如何把except脚本写成函数?不用单独调脚本了么?以为非得弄出去才行,如果包在函数里应该就好弄了。

论坛徽章:
1
射手座
日期:2014-03-10 14:24:52
发表于 2013-12-19 18:40 |显示全部楼层
nathanielwen 发表于 2013-12-19 03:10
我做过一个自动登陆的脚本,是把except脚本写成函数,写在shell里面,然后shell直接往函数传递参数就可以。 ...


还是感谢nathanielwen 提供的思路。

这个问题已经解决了,我来个自问自答吧。
看到另一个帖子说可以直接嵌在shell里,变量赋值或改变就不是问题了,试了试确实可行。
样例如下:
#!/usr/bin/sh
#shell
……
newfilename=`echo $file|sed 's/.$/?/'`
while……
#expect 部分
expect<<EOF>>`date +%Y-%m-%d`.log
set timeout -1
spawn XXXX
expect "Input File :"
send "$newfilename\r"
expect "Continue ? (Y / N) "
send "y\r"
expect "Press RETURN Key"
send "\r"
expect eof
EOF
……
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP