一、Here Document
定义
使用I/O重定向的方式将命令列表提供给交互式程序
标准输入的一种替代品
Here Document 是标准输 入的一种替代品,可以帮助脚本开发人员不必使用临时文件来构建输入
信息,而是直接就地 生产出一个文件并用作命令的标准输入,Here Document 可以与非交互式程序
和命令一起使用
语法格式
语法格式
命令<< 标记
....
......
标记
注意事项
- 标记可以使用任意的合法字符(通用的字符是EOF)
- 结尾的标记一定要顶格写,前面不能有任何字符(包括空格)
- 结尾的标记后面也不能有任何字符(包括空格)
- 开头标记前后空格会被省略掉
举例说明:
例1
使用 wc -l 命令后面直接跟文件名就可以统计文件内有多少行内容,将要统计的内容置于标记“EOF” 之间,直接将内容传给 wc -l 来统计。
#!/bin/bash
wc -l <<EOF
line 1
line 2
EOF
- 此处含义解释: wc -l 统计行数
- <<EOF
.......
EOF
之间的内容 传入脚本做为参数给 wc-l
例2
通常使用 read 命令接收用户的输入值时会有交互过程
[root@localhost ~]# read -p "请输入一个数字" ack
请输入一个数字8
[root@localhost ~]# echo $ack
8
[root@localhost ~]# read i <<EOF
> hi
> EOF
> echo$i
例3
使用 passwd命令设置密码
EOF 标记之间的两行是输入的密码和确认密码,两行内容必须保持一致,否则密 码设置不成功。此脚本执行后不会输出任何信息,可另开一个终端使用 jerry 用户登录,输 入新修改的密码来验证密码是否修改正确
[root@localho