Shell脚本 EOF使用

Shell 的EOF使用 文章目录EOF的介绍使用方法 EOF的介绍 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 示例 < test.text > test 1234 > 5678 > EOF [root@www ~]# ca 立即下载

前言:

 EOF是End Of File的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,意思是把内容当作标准输入传给程序,Linux中按Ctrl-d就代表EOF。

 在Shell中我们通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。回顾一下< <的用法,当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。

用法:

<<EOF        //开始
....
EOF          //结束
  • 1
  • 2
  • 3

也可以自定义,如:

<<FFF        //开始
....
FFF         //结束
  • 1
  • 2
  • 3

注意:

 第一个EOF必须以重定向字符<<开始,第二个EOF必须顶格写,否则会报错。

EOF配合cat能够进行多行文本输出。

通过cat配合重定向能够生成文件并追加操作,在它之前先回顾几个特殊符号:

<   :输入重定向
>   :输出重定向
>>  :输出重定向,进行追加,不会覆盖之前内容
<<  :标准输入来自命令行的一对分隔号的中间内容
  • 1
  • 2
  • 3
  • 4

例:

[root@localhost ~]# cat <<EOF   //运行后会出现输入提示符">"
> Hello
> wolrd
> EOF
输入结束后,在终端显示以下内容:
Hello
wolrd
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

1.向文件file1.txt中输入内容

[root@localhost ~]# cat >file1.txt <<EOF
> aaa
> bbb
> ccc
> EOF

[root@localhost ~]# cat file1.txt
aaa
bbb
ccc

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

追加内容至file1.txt中

[root@localhost ~]# cat >>file1.txt <<EOF
> 111
> 222
> 333
> EOF

[root@localhost ~]# cat file1.txt
aaa
bbb
ccc
111
222
333

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

覆盖file1.txt

[root@localhost ~]# cat >file1.txt <<EOF
> Hello wolrd
> EOF

[root@localhost ~]# cat file1.txt
Hello wolrd

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

2.自定义EOF

[root@localhost ~]# cat >file1.txt <<FFF
> test
> hello
> FFF

[root@localhost ~]# cat file1.txt
test
hello

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

3.编写一个脚本,生成mysql配置文件

[root@localhost ~]# vim /root/test.sh
#!/bin/bash
cat >/root/EOF/my.cnf <<EOF
[client]
port=3306
socket=/usr/local/mysql/var/mysql.sock
basedir=/usr/local/msyql/
datadir=/data/mysql/data
pid-file=/data/mysql/data/mysql.pid
user=mysql
server-id=1
log_bin=mysql-bin
EOF

[root@localhost ~]# cat /root/EOF/my.cnf //查看生成的mysql配置文件
[client]
port=3306
socket=/usr/local/mysql/var/mysql.sock
basedir=/usr/local/msyql/
datadir=/data/mysql/data
pid-file=/data/mysql/data/mysql.pid
user=mysql
server-id=1
log_bin=mysql-bin

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

4.编写脚本向mysql数据库建表、赋值并查询

[root@localhost ~]# vim eof.sh
#!/bin/bash
mysql -uroot -p123456 <<EOF
use test;
create table data(name varchar(15),age int,address varchar(25));
desc test.data;
insert into data values("tom",23,"china");
select * from data;
exit
EOF
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

-运行脚本查看执行结果

[root@localhost ~]# bash eof.sh    //运行脚本,查看数据库中信息
mysql: [Warning] Using a password on the command line interface can be insecure.
Field	Type	Null	Key	Default	Extra
name	varchar(15)	YES		NULL	
age	int(11)	YES		NULL	
address	varchar(25)	YES		NULL	

name age address
tom 23 china

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

-在数据库中查看新增的数据:

[root@localhost ~]# mysql -uroot -p123456
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| test               |
+--------------------+

mysql> use test;

mysql> show tables;
±---------------+
| Tables_in_test |
±---------------+
| data |
±---------------+

mysql> desc test.data;
±--------±------------±-----±----±--------±------+
| Field | Type | Null | Key | Default | Extra |
±--------±------------±-----±----±--------±------+
| name | varchar(15) | YES | | NULL | |
| age | int(11) | YES | | NULL | |
| address | varchar(25) | YES | | NULL | |
±--------±------------±-----±----±--------±------+

mysql> select * from data;
±-----±-----±--------+
| name | age | address |
±-----±-----±--------+
| tom | 23 | china |
±-----±-----±--------+

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
减小伺服电机共振的方法(以松下伺服为例) 嘿 ! 我是【小黄】 , 我们又见面啦 !!! 毕竟技术只有大家交流才会进步嘛 ! 这博客是对自己学习的一点点记录和总结 ,如果您对自动控制感兴趣的话 ,可以关注一下我的动态 , 我们一起学习呀 ! 我们都还年轻 ,我们还有无限可能 。 YES ! 减小伺服电机共振的方法(以松下伺服为例)1. 准备工作:1.1.1 如何推定共振点:1.1.2 测定实操:1.1.3 总结:2. 下期预告: 在我们调试完伺服参数以后机器人运动到某个特定位置会产生振动或异响,我们要做的就是消除这个异响保.. 阅读详情

相关推荐

保姆级教程:用torch.profiler给你的vLLM推理做个“全身体检”(附Perfetto可视化分析)

本文提供了一份详细的vLLM推理性能分析教程,通过torch.profiler和Perfetto工具链实现从数据采集到可视化分析的全流程。文章涵盖了环境配置、性能数据采集、trace文件解析以及Perfetto可视化分析,帮助开发者优化大模型推理服务的性能,显著降低计算资源消耗。

weixin_29041767的博客 357

shell中的EOF用法

1、EOF Shell中通常将EOF与<<结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下<<的用法。当shell看到<<的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。 例子:自动登录mysql(root:ro...

xiaokanfuchen86的博客 9242

CST局部网格加密实战:从基础设置到Meshgroup高效管理

本文详细解析了CST电磁仿真软件中的局部网格加密技术,重点介绍Meshgroup功能的高效管理方法。通过平行板电容等实战案例,阐述从基础设置到多级加密策略的完整流程,帮助用户精准提升关键区域仿真精度,同时优化计算资源使用效率。

grafana6viz的博客 694

shell 交互方法<<EOF

shell 免手动交互清理缓存、多行注释

m0_61066945的博客 7453

【Python机器学习实战】 | 基于PCA主成分分析技术读入空气质量监测数据进行数据预处理并计算空气质量综合评测结果

主成分分析(Principal Component Analysis, PCA)是一种常用的机器学习和数据分析技术,用于降低数据维度、识别数据中的模式、发现变量之间的关系等。

一伦明悦的博客 1263

ANSYS ICEM CFD 2023R2 结构化网格实战:翼型绕流 10 步生成高质量六面体网格

在计算流体力学(CFD)分析中,网格质量直接决定了仿真结果的精度和收敛性。对于翼型绕流这类典型的外部流动问题,结构化网格因其规则的节点排列和优异的边界层捕捉能力,成为高精度模拟的首选方案。通过在后缘处添加局部H型拓扑,并将过渡区增长率降至1.1,最终使网格质量指标提升40%,计算收敛速度提高2倍。这印证了结构化网格在复杂流动模拟中的不可替代性——虽然初期投入时间较多,但能显著提升计算精度和稳定性。在开始网格划分前,合理的几何准备是确保后续流程顺利的关键。对于翼型绕流,O型网格拓扑能提供最佳的边界层适应性。

weixin_30731305的博客 362

(转载)shell脚本中的 EOF 是什么意思?

EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名, 你可以用EEE,MAMA等等其他的名字都可以。 EOF在这里通俗讲就是一个标记,他用来标记一段文字(一般都是多行的,省得编码麻烦,用"<<"加上一个标记就可以把一大段代码存入到一个变量中去了) $a=<< “EOF” 的意思就是说:下一行开始,直到遇见“EO...

BearStarX的博客 1693

告别以太网瓶颈:手把手教你为AI训练集群搭建InfiniBand网络(以NVIDIA DGX A100/H100为例)

本文详细指导如何为AI训练集群搭建InfiniBand网络,解决以太网瓶颈问题,特别针对NVIDIA DGX A100/H100系统。通过硬件选型、网络架构设计和性能调优,显著提升多机多卡训练效率,适用于大规模模型训练场景。

weixin_30336061的博客 310

shell之EOF 用法

解决shell中交互模式下输入的问题,以建立yum本地仓库配置文件为例。1. 用来注释整段脚本代码。echo "床前明月光"echo "明天你好"

qq_35573061的博客 1328

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

【AI智能体】Dify 搭建发票识别助手操作实战详解

Dify 搭建发票识别专属助手操作实战详解

congge 5549

shell脚本中EOF的作用

1、EOF的作用 Shell中通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。 可以把EOF替换成其他东西,意思是把内容当作标准输入传给程序。 回顾一下< <的用法。当shell看到< <的时候,它就会知道下一个词是一个分界符。在该分界符以后的内容都被当作输入,直到shell又看到该分界符(位于单独的一行)。这个分界符可以是你所定义的任何字符串。 例子:自动登录mysql(root:root,pas

sunmingyang1987的博客 3473

OpenCV实战之人脸美颜美型(八)——大眼(上)

从大众审美的角度来看,眼睛适当的“变大”会让人显得更加年轻。因此美型中就有一项大眼功能,其效果就是让眼睛适当变大,这章内容就围绕着大眼算法展开。

On my way 1211

一文掌握EOF在Shell脚本中的妙用

前言:  EOF是End Of File的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,意思是把内容当作标准输入传给程序,Linux中按Ctrl-d就代表EOF。  在Shell中我们通常将EOF与 << 结合使用,表示后续的输入作为子命令或子Shell的输入,直到遇到EOF为止,再返回到主调Shell。回顾一下< <的用法,当shell看到...

非著名运维的博客 5063

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

linux shell 脚本 EOF

EOF:end of file,通过EOF可以往文件里面一次输入多行 常见用法: 1、打印多行 [root@master ansible]# cat &lt;&lt; EOF &gt; a &gt; b &gt; c &gt; EOF a b c [root@master ansible]# 2、往test.txt中输入多行 [root@master ansible]# cat &...

Man_In_The_Night的博客 556

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

shell脚本中的<<EOF

<<EOF 代表后续语句也作为命令输入,遇到末尾的EOF结束。

博客 3036

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

shell脚本中的 EOF 是什么意思?

EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,你可以用EEE,MAMA等等其他的名字都可以。EOF在这里通俗讲就是一个标记,他用来标记一段文字(一般都是多行的,省得编码麻烦,用"&lt;&lt;"加上一个标记就可以把一大段代码存入到一个变量中去了)$a=&lt;&lt; “EOF” 的意思就是说:下一行开始,直到遇见“EOF”为止,所...

王图思睿 1万+

shell脚本使用cat和EOF组合添加和删除文件内容

我们经常会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内容。如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢之极了! 这个时候,就可以使用EOF结合cat命令进行行内容的追加了。 下面就对EOF的用法进行梳理: EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固

jaryle的专栏 1万+

linux shell脚本EOF妙用

在平时的运维工作中,我们经常会碰到这样一个场景: 执行脚本的时候,需要往一个文件里自动输入N行内容。如果是少数的几行内容,还可以用echo追加方式,但如果是很多行,那么单纯用echo追加的方式就显得愚蠢之极了! 这个时候,就可以使用EOF结合cat命令进行行内容的追加了。 下面就对EOF的用法进行梳理: EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不

zongshi1992的博客 12万+

shell脚本中cat << eof ,出现错误输出

shell脚本中cat << eof ,出现错误输出 首先,我们先看下正常的输出; // An highlighted block cat test.sh #!/bin/bash cat << eof ******************* test eof ******************* eof // An highlighted block sh test.sh ******************* test eof ******************* 正常的使

云计算_haha的博客 1369

Linux shell脚本中内联输入 <<-EOF 和 <<EOF的区别

<<-EOF将忽略起止内容中前面的tab制表符,而<<EOF将不会,比如: cat <<EOF Line 1 Line 2 EOF will produce Line 1 Line 2 while cat <<-EOF Line 1 Line 2 EOF produces Line 1 Line 2 The format of here-documents is: <<[-]word here-do

跃祥博客 2365

shell中插入expect脚本的执行,注意EOF后面的空格

#!/bin/sh /usr/bin/expect <<\EOF #set port $p spawn telnet localhost 30112 sleep 1 send "root\r" sleep 1 send "r00t\r" sleep 1 send "trace\r" sleep 1 send "quit\r" interact EOF if [ $? -ne 0 ];then

Black-REN 1万+

解密Shell脚本中的EOF:编写高效、可读性强的代码!

在Shell脚本中,EOF(End of File)是一个特殊标记,用于指示一段文本的开始和结束位置。但它并不是Shell脚本中的关键字或保留字。您可以自由选择EOF之前的标记,只需确保开始和结束标记匹配即可。基本上<<EOF告诉 shell 您将输入多行字符串,直到“标记” EOF。您可以根据需要命名此标签,通常是EOF或STOP。

qq_21305943的专栏 1040

shell脚本中cat EOF1的意思

shell脚本中cat &lt;&lt;EOF1 的意思 1. 什么是EOF? EOF就是end of file。 2. cat &lt;&lt;EOF1 cat &lt;&lt;EOF1 的意思就是查看直到EOF1的内容,示例如下: 2.1 示例1 [root@server4 temp]# cat &lt;&lt;EOF1 &gt; sdf &gt; dsfs &gt; dfsoj &gt; E...

说文科技,做有态度的研究。 2288

Linux shell脚本中内联输入 <<- EOF和 <<EOF的区别

<<-EOF将忽略起止内容中前面的tab制表符,而<<EOF将不会,比如: -END就会忽略每行前面的TAB白串。

songyuchaoshi的博客 1600

shell脚本中EOF用法小结

文章目录使用EOF格式化磁盘使用EOF给文件输入,追加,覆盖内容EOF可以被自定义在远端节点执行相关命令 使用EOF格式化磁盘 #! /bin/bash fdisk /dev/ram3 << EOF n p 1 2048 94371839 w EOF 使用EOF给文件输入,追加,覆盖内容 [root@slave-server opt]# cat << EOF &gt...

qq_23929673的博客 4259
上一篇: linux arm fdisk, 对未使用emmc分区扩容
下一篇: rk3572
shliang310
博客等级 码龄10年 10粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值