shell here document用法

#!/bin/bash
if [ -z “$1” ]
then
echo “Usage:`basename $0` filename”
exit 1
fi
vi $1 <<CLOUD
i
This is line 1
This is line 2
^[
zz
CLOUD
exit 0

先判断”$1″(脚本的第一个参数)是否为空字符串,如果为空,说明运行脚本时没有带参数,给出正确用法提示。basename $0 用于获取脚本文件名(去除路径)。

vi $1 <<CLOUD
…..
CLOUD
这是“此处文档”(Here documents)用法,$1是用于vi编辑的文件名,两个CLOUD中间是输入的vi命令,依次解释如下:
i –> 从默认的vi命令模式进入vi编辑模式
This is line 1 –> 编辑输入的文本行内容
This is line 2 –> 编辑输入的文本行内容
^[ –> 一个特殊转义符用于返回命令行模式。写脚本时按ctrl+v再按<Esc>就能自动打出这个字符。
zz –> 将当前正在编辑的文件保存并退出vi

exit 1 和 exit 0 用于退出脚本并返回执行状态(shell中0代表true,非0代表false)。

详细介绍可以看https://linux.die.net/abs-guide/here-docs.html

此条目发表在实用脚本分类目录,贴了标签。将固定链接加入收藏夹。