here document

本文介绍了一种使用here文档进行批量输入的方法,特别是在FTP交互及脚本加载等场景下的应用。通过具体的例子展示了如何利用here文档简化复杂的命令输入过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 here 文档用于ftp的自动交互:
 
  ip=bldc.ih.lucent.com; user=jepeng; pass=Cool13579;
 dir=/bld/jepeng/cs1342/aplg_cdma/ia32_obj; file=LMCPmain;
 ftp -n <<!
 open $ip
 user $user $pass
 bin
 cd $dir
 get $file
 bye
 !

saveload<<FIN
${RT0LABid}
${INITIALS}
${RT0num} ${FAFnum}
${LoadName}
${STATUS}
y
FIN
it is here documents
the command "saveload" takes all following lines as arguments.

often ,here documents is as below
saveload<<!
123
...
!
FIN是一个标签
表示它之前的都是here document.
FIN can replace with any character

here document 就是批量输入
$ which saveload
/home/coolclf/bin/saveload
将下面的文本批量输入到脚本saveload中
saveload<<FIN
${RT0LABid}
${INITIALS}
${RT0num} ${FAFnum}
${LoadName}
${STATUS}
${RT0LABid}
${CLFDEST}
${LoadName}
${STATUS}
${RT0LABid}
${LOADDEPS}
${CLFDEST}
y
FIN

why 不能两个<< here文档连着
print <<EOF
...
EOF

print <<EOF
...
EOF
错误将第二个EOF改成EOF2
标识重名了

 

 

### Linux 中 Here Document 的概念 Here Document 是一种特殊的重定向方式,允许用户将多行文本传递给命令作为标准输入。这种方式使得编写复杂的 Shell 脚本更加方便和直观[^3]。 ### 基本语法结构 Here Document 的基本语法如下: ```bash command << delimiter text to be passed as input delimiter ``` `delimiter` 可以是任意字符串,在这里通常使用 `EOF` 或者自定义标记如 `tian` 来表示结束标签[^4]。 ### 实际应用案例 #### 单纯的文本输出 最简单的例子就是通过 `cat` 命令打印一段文字到终端或者保存至文件中: ```bash cat << EOF 这是一个测试消息, 可以包含多行内容。 EOF ``` 这段代码会把两行字符串逐字发送给 `cat` 处理并最终显示出来[^2]。 #### 结合 SSH 远程执行指令 当需要向远程服务器传输配置文件或者其他数据时,可以直接利用 here 文档的形式一次性完成操作而不需要事先准备好本地临时文件再上传过去。例如设置环境变量: ```bash ssh user@remote_host 'bash -s' << 'ENDSSH' echo "export PATH=$PATH:/opt/local/bin" >> ~/.bashrc source ~/.bashrc ENDSSH ``` 注意这里的 `'ENDSSH'` 加上了单引号是为了防止 `$PATH` 在当前 shell 下被提前解析替换掉实际值[^1]。 ### 自定义分隔符 除了默认使用的 `EOF` ,也可以指定其他的字符序列作为边界词,这在某些情况下特别有用,尤其是当你希望避免与已有关键字冲突的时候。下面的例子展示了如何创建一个名为 `example.txt` 文件并将一些内容写入其中: ```bash cat << tian > example.txt 这是另一个测试实例, 这次我们将这些话存到了文件里. tian ``` 上述命令将会创建一个新的文本文件,并且里面包含了两条记录的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值