«

shell脚本中的交互式输入自动化

时间:2024-2-21 12:04     作者:韩俊     分类: Linux


shell中有时我们需要交互,但是呢我们又不想每次从stdin输入,想让其自动化,这时我们就要使shell交互输入自动化了。

1 利用重定向

重定向的方法应该是最简单的

例:

以下 test.sh 脚本内容如下,要求我们从stdin中分别输入 number name 然后将输入的 number name 打印出来

[root@localhost ~]# cat test.sh
#! /bin/bash
read -p "enter number:" number
read -p "enter name:" name
echo you have entered $number, $name

以下是作为输入的文件内容:

[root@localhost ~]# cat input.data 
001
balabala

然后我们利用重定向来完成交互的自动化:

[root@localhost ~]# ./test.sh < input.data 
you have entered 001,balabala

2 利用管道完成交互的自动化

这个就是利用管道特点,让前个命令的输出作为后个命令的输入完成的

也用上面例子举例:

[root@localhost test]# echo -e "001\balalbala\n" | sh test.sh 
you have entered 001, balabala

上面中的 "001\balabala\n" 中的“\n”是换行符的意思。
 
3 利用expect

expect是专门用来交互自动化的工具,但它有可能不是随系统就安装好的,有时需要自己手工安装该命令

查看是否已经安装:rpm -qa | grep expect

安装命令:yum install expect 或者 apt install expect

关于 expect 相关的知识可直接在本站搜索。

标签: linux

热门推荐