Linux交互工具-here document

 here document: 一个有特殊目的的代码段,它使用I/O重定向将一段代码(能传递参数和命令替换)传递到别的交互程序或命令中,通常用于交互式。
Usage:command << EndofMessage(<<-可以抑制文档前tab的输出,'EndofMessage'单引号可以阻止文档内变量的扩展)
conmmand 1
conmmand 2
...
EndofMessage

文件编辑
vi filename << EndOfMessage
i #编辑
content
^[ #esc
ZZ #退出并保存
EndOfMessage

密码修改

#!/bin/bash
passwd <<EndofMessage
passw0rd
passw0rd
EndofMessage

仿sed
ex filename << EndOfMessage
:%s/content1/content2/ #不要忘记%
:wq
EndOfMessage

ftp
ftp -n $server <<End-Of-Session
user anonymous "$passwd"
binary
bell
cd $Directory
put "$Filename.lsm"
put "$Filename.tar.gz"
bye
End-Of-Session

输出多行字符
cat << EndOfMessage
Line 1
Line 2
Line 3
...
EndOfMessage

cat > $Newfile << EndOfMessage 内容将不会输出,直接保存Newfile中

交互函数
GetpersonalData ()
{
read firstname
read lastname
read city
}

GetpersonalData <<EndOfMessage
Fan
Liu
Jiangxi
EndOfMessage

echo “$lastname $firstname”

原文地址:https://www.cnblogs.com/hana-alice/p/9232243.html