shell中交互输入自动化

原创 2012年06月03日 09:25:57
shell中交互输入自动化
shell中有时我们需要交互,但是呢我们又不想每次从stdin输入,想让其自动化,这时我们就要使shell交互输入自动化了。这个功能很有用的哟。好好学习。
1    利用重定向
    重定向的方法应该是最简单的
例:
以下的test.sh是要求我们从stdin中分别输入no,name然后将输入的no,name打印出来
[root@localhost test]# cat test.sh
#! /bin/bash
read -p "enter number:" no
read -p "enter name:" name
echo you have entered $no, $name

以下是作为输入的文件内容:
[root@localhost test]# cat input.data 
1
lufubo

然后我们利用重定向来完成交互的自动化:
[root@localhost test]# ./test.sh < input.data 
you have entered 1, lufubo

看吧!效果不错吧!哈哈

2 利用管道完成交互的自动化
这个就是利用管道特点,让前个命令的输出作为后个命令的输入完成的
也用上面例子举例:
[root@localhost test]# echo -e "1\nlufbo\n" | ./test.sh 
you have entered 1, lufbo
上面中的 "1\nlufbo\n" 中的“\n”是换行符的意思,这个比较简单的。

3    利用expect
expect是专门用来交互自动化的工具,但它有可能不是随系统就安装好的,有时需要自己手工安装该命令
查看是否已经安装:rpm -qa | grep expect
以下脚本完成跟上述相同的功能
[root@localhost test]# cat expect_test.sh 
#! /usr/bin/expect
spawn ./test.sh
expect "enter number:"
send "1\n"
expect "enter name:"
send "lufubo\n"
expect off

注意:第一行是/usr/bin/expect,这个是选用解释器的意思,我们shell一般选的是 /bin/bash,这里不是
spawn: 指定需要将哪个命令自动化
expect:需要等待的消息
send:是要发送的命令
expect off:指明命令交互结束

shell脚本之输入交互read

read - 从标准输入读取数值 这个 read 内部命令被用来从标准输入读取单行数据。这个命令可以用来读取键盘输入,当使用 重定向的时候,读取文件中的一行数据。这个命令有以下语法形式: ...
  • xuehuagongzi000
  • xuehuagongzi000
  • 2017年03月18日 14:36
  • 1308

Shell脚本交互之:自动输入密码

文章转载自:http://blog.csdn.net/zhangjikuan/article/details/51105166 平时在控制台输入指令如:sudo、ssh、ftp或者修...
  • wuanwujie
  • wuanwujie
  • 2017年05月04日 10:10
  • 2173

Shell脚本交互之:自动输入密码

平时在控制台输入指令如:sudo、ssh、ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密码呢? 下面总结三种实现方法。 一...
  • zhangjikuan
  • zhangjikuan
  • 2016年04月09日 19:41
  • 29092

Python与shell的交互方式

hello.py代码如下:#!/usr/bin/python print "hello, world!"TestInput.py代码如下:#!/usr/bin/python str = raw_inp...
  • csujiangyu
  • csujiangyu
  • 2015年04月04日 11:23
  • 5922

Shell读取用户输入

14.2  读取用户输入 14.2.1  变量 上一章我们谈到如何定义或取消变量,变量可被设置为当前shell的局部变量,或是环境变量。如果您的shell脚本不需要调用其他脚本,其中的变量通常设置...
  • zilong00007
  • zilong00007
  • 2011年08月12日 10:46
  • 37240

使用expect实现shell自动交互

shell脚本需要交互的地方可以使用here文档是实现,但是有些命令却需要用户手动去就交互如passwd、scp 对自动部署免去用户交互很痛苦,expect能很好的解决这类问题。 expe...
  • chengxuyuanyonghu
  • chengxuyuanyonghu
  • 2016年05月12日 16:08
  • 4932

实现Linux Shell自动交互的三种方法

shell脚本在处理自动循环或大的任务方面可节省大量的时间,通过创建一个处理任务的命令清单,使用变量、条件、算术和循环等方法快速创建脚本以完成相应工作,这比在命令行下一个个敲入命令要省时省力得多。你了...
  • zhangxinrun
  • zhangxinrun
  • 2010年06月23日 14:42
  • 2482

linux shell 脚本需要交互,比如输入回车,输入YES/NO Y/N之类进行选择

Linux中shell脚本运行时经常需要进行交互,比如安装软件的过程中对license声明的确认,需要输入yes,回车之类的确认信息。这个在自动化安装的时候就会是个问题。 通常对于这个问题比较灵活的解...
  • linhx
  • linhx
  • 2010年01月01日 21:54
  • 15785

Linux Shell自动交互

为了方面,我写了个脚本自动ssh登录远端机器,如下,这个脚本需要安装expect包 ================================ #!/usr/bin/expectset time...
  • defeattroy
  • defeattroy
  • 2010年03月15日 13:01
  • 5584

Linux下后台程序完成自动输入密码等交互行为的例子

linux shell expect 自动交互
  • topasstem8
  • topasstem8
  • 2014年01月06日 16:35
  • 5890
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:shell中交互输入自动化
举报原因:
原因补充:

(最多只允许输入30个字)