本文共 962 字,大约阅读时间需要 3 分钟。
在shell脚本程序中向一条命令传递输入的一种特殊方法是使用here文档。它允许一条命令在获得输入数据时就好像是在读取一个文件或键盘一样,而实际上是从脚本程序中得到输入数据。 语法: command >> specialstring ...... specialstring specialstring 用来界定命令序列的范围,可自定义但不能出现在传递命令的文档内容中,可以两端都使用!来确保不会引起混淆。 --------------------------------------------------------------------------------------------------------------------------------------- 例1:使用cat打印多行信息
cat << !FUNKY!
hello this is a here document !FUNKY! --------------------------------------------------------------------------------------------------------------------------------------- 如果想按预定的方式处理一个文件的几行,你可以使用ed行编辑器,并在脚本程序中通过here文档向它提供命令。 例2:(1)我们从名为test_file的文件开始,它的内容如下: that is line 1 that is line 2 that is line 3 that is line 4 (2)你可以通过结合使用here文档和ed编辑器来编辑这个文件 ed test_file << !asd! 3 d .,\$s/is/was/ w q !asd! exit 0
运行这个脚本程序,现在这个文件名的内容是:
that is line 1 that is line 2that was line 4
解析:这个脚本程序只是调用ed编辑器并向它传递命令,先让它移动到第三行,然后删除该行,再把当前行(即刚才的第四行)中的is替换为was。完成这些操作的ed命令来自脚本程序中的here文档--在标记!asd!之间的那些内容。
转载地址:http://souoi.baihongyu.com/