最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

如何向shellscripts中的交互过程推送文本信息

来源:懂视网 责编:小采 时间:2020-11-09 10:37:08
文档

如何向shellscripts中的交互过程推送文本信息

如何向shellscripts中的交互过程推送文本信息:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:./jboss_init.sh start然后会在脚本的提 一哥们提了一个问题,觉得比较有意思,小研究了下:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,
推荐度:
导读如何向shellscripts中的交互过程推送文本信息:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:./jboss_init.sh start然后会在脚本的提 一哥们提了一个问题,觉得比较有意思,小研究了下:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,

这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:./jboss_init.sh start然后会在脚本的提

一哥们提了一个问题,觉得比较有意思,小研究了下:
这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:
./jboss_init.sh start
然后会在脚本的提示下输入一个密码确认,然后才能启动。
问题是这样的,他不想手工输入这个密码,希望程序能够自动完成这个输入过程(因为搞技术的的都是很懒的一批人,懒人成就了技术革新)

为模拟上述的大致环境,我找到了sqlplus程序,sqlplus程序在指定用户名不指定密码的时候,会提示用户输入密码
如下:
[Oracle@rac1 scripts]$ sqlplus mai
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 4 16:50:34 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Enter password:


于是就写出了下面的这个脚本:
[oracle@rac1 scripts]$ more t.sh
#!/usr/bin/expect
set timeout 10
spawn /u02/db_1/bin/sqlplus mai
expect "password:"
send "mai\r"
interact
注:大部分系统是没有安装expect工具的,需要进行手工安装一下,安装完成之后的程序就是在/usr/bin/expect下
上面的timeout表示一个时间,给出脚本推送文本的时间
spawn的话,就是执行相关的触发命令,这个命令也可以是一个脚本
expect的话,就是查找相应的字段,,准备在其后输入参数值
send很明显,就是发送文本,后面的\n表示键入一次回车
interact的话,就是使当前脚本恢复交互模式,如果没有这一行的话,那么脚本就会在延时时间到之后自动退出


执行如下:
[oracle@rac1 scripts]$ ./t.sh
spawn /u02/db_1/bin/sqlplus mai
SQL*Plus: Release 11.2.0.1.0 Production on Wed Sep 4 16:53:05 2013
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Enter password: mai


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options


SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options

有上面的结果可见:成功登陆,OK了!

特别注意:
在大部分的脚本程序中,是不允许吧明文密码直接写入脚本中的,这样容易造成密码的泄露。
在此仅仅是使用了sqlplus这个工具模拟了这个过程,显示中的实用性还是有一些的,但是不建议使用。

Linux中shell scripts

linux

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

如何向shellscripts中的交互过程推送文本信息

如何向shellscripts中的交互过程推送文本信息:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,需要输入下面类似的命令:./jboss_init.sh start然后会在脚本的提 一哥们提了一个问题,觉得比较有意思,小研究了下:这哥们公司的开发部门写了一个jboss的脚本,用于启动jboss程序,
推荐度:
标签: 信息 中的 过程
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top