2019独角兽企业重金招聘Python工程师标准>>>

linux中EOF的用法梳理

在linux运维工作中,我们会碰到这样一个场景:

执行脚本的时候,需要往一个文件里自动输入N行内容。如果是少数几行,可以使用echo进行追加,如果是多行内容,再用echo追加就不合适了。

这个时候就可以使用EOF结合cat进行内容的追加了。

下面对EOF的用法进行梳理:

EOF是END OF FILE的缩写,表示自定义终止符。既然是自定义,那么EOF就不是固定的,可以随意设置别名,在Linux中按ctrl+d就可以代表EOF。

其用法如下:

<<EOF        //开始
....
EOF            //结束

还可以自定义:

<<BBB        //开始
....
BBB              //结束

通过cat配合重定向并追加操作,在这之前先熟悉几个符号:

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

下面通过具体事例来感受下EOF用法的妙处:

  • 向文件test.sh中添加内容

[tianqi@tianqi-01 shell]$ cat << EOF > test.sh
> 123456
> 456789
> adgcdg
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh 
123456
456789
adgcdg
[tianqi@tianqi-01 shell]$

  • 追加内容

[tianqi@tianqi-01 shell]$ cat << EOF >> test.sh 
> 777
> 888
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh 
123456
456789
adgcdg
777
888
[tianqi@tianqi-01 shell]$

  • 覆盖内容

[tianqi@tianqi-01 shell]$ cat << EOF > test.sh 
> 5555
> EOF
[tianqi@tianqi-01 shell]$ cat test.sh 
5555
[tianqi@tianqi-01 shell]$

  • 自定义EOF,比如自定义为tian

[tianqi@tianqi-01 shell]$ cat << tian > example.txt
> aaa
> bbb
> 333
> tian
[tianqi@tianqi-01 shell]$ cat example.txt 
aaa
bbb
333
[tianqi@tianqi-01 shell]$

  • 可以编写脚本,向一个文件中输入多行内容

[tianqi@tianqi-01 shell]$ touch my.cnf

[tianqi@tianqi-01 shell]$ vim test.sh

#!/bin/bash
cat > /home/tianqi/shell/my.cnf << EOF
/home/tianqi/shell/my.cnf
[client]
port = 3306
socket = /usr/local/mysql/var/mysql.sock

[mysqld]
port = 3306
socket = /usr/local/mysql/var/mysql.sock

basedir = /usr/local/mysql/
datadir = /data/mysql/data
pid-file = /data/mysql/data/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1
sync_binlog=1
log_bin = mysql-bin

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
port = 3306
EOF

[tianqi@tianqi-01 shell]$ cat /home/tianqi/shell/my.cnf
/home/tianqi/shell/my.cnf
[client]
port = 3306
socket = /usr/local/mysql/var/mysql.sock

[mysqld]
port = 3306
socket = /usr/local/mysql/var/mysql.sock

basedir = /usr/local/mysql/
datadir = /data/mysql/data
pid-file = /data/mysql/data/mysql.pid
user = mysql
bind-address = 0.0.0.0
server-id = 1
sync_binlog=1
log_bin = mysql-bin

[myisamchk]
key_buffer_size = 8M
sort_buffer_size = 8M
read_buffer = 4M
write_buffer = 4M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
port = 3306
[tianqi@tianqi-01 shell]$

转载于:https://my.oschina.net/u/3744518/blog/1838395

linux中EOF的用法梳理相关推荐

  1. Linux中EOF用法

    Linux中EOF用法 理解:EOF是END Of File的缩写,表示自定义终止符.既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d就代表EOF. EOF一般会配合c ...

  2. Nginx配置中的log_format用法梳理(设置详细的日志格式)

    Nginx配置中的log_format用法梳理(设置详细的日志格式) nginx服务器日志相关指令主要有两条:一条是log_format,用来设置日志格式:另外一条是access_log,用来指定日志 ...

  3. linux中make的用法

    一.linux中make的用法   目的:        基本掌握了make 的用法,能在Linux系统上编程. 环境:        Linux系统 准备:        准备三个文件:file1. ...

  4. linux bin fuser,Linux中fuser命令用法详解

    描述: fuser可以显示出当前哪个程序在使用磁盘上的某个文件.挂载点.甚至网络端口,并给出程序进程的详细信息. fuser显示使用指定文件或者文件系统的进程ID. 默认情况下每个文件名后面跟一个字母 ...

  5. linux ksh 用户名,实例讲解Linux中ksh的用法

    实例讲解Linux中ksh的用法 发布时间:2008-02-18 20:46:01来源:红联作者:Modegle 熟悉Linux的朋友肯定都知道bash,它是Linux默认的命令行解释程序,熟悉Sol ...

  6. Linux之make的用法讲解,linux中make的用法

    1.linux中make的用法 目的: 基本掌握了make 的用法,能在Linux系统上编程. 环境: Linux系统 准备: 准备三个文件:file1.c, file2.c, file2.h fil ...

  7. php eof 使用函数_PHP中EOF的用法介绍(附示例)

    本篇文章给大家带来的内容是关于PHP中EOF的用法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. PHP EOF(heredoc)是一种在命令行shell(如sh.cs ...

  8. linux中ftp的用法,linux中的ftp命令用法(7页)-原创力文档

    第 第 PAGE 1 页 共 NUMPAGES 1 页 linux中的ftp命令用法 Linux系统中的ftp命令功能强大,那么它的具体用法是怎样呢?下面由小编为大家整理了linux中的ftp命令用法 ...

  9. linux中test的用法,如何在Linux中使用test命令

    Linux系统中有时需要检测某个条件是否成立,那么就要用到test命令了,Linux下test的用法有很多,下面就随学习啦小编一起来学习下Linux系统中如何使用test命令吧. 1.判断一个命令的结 ...

最新文章

  1. jvmti_从javaagent迁移到JVMTI:我们的经验
  2. 策略梯度训练cartpole小游戏
  3. 深入浅出数据仓库中SQL性能优化之Hive篇
  4. 六十八、快速幂算法、牛顿迭代法、累加数组+二分查找的变形
  5. 文本字段和表单设计-UI组件系列
  6. BeetleX实现MessagePack和Protobuf消息控制器调用websocket服务详解
  7. 关于指针释放的小领悟
  8. mysql connector放在哪_关于MySQL Connector/C++那点事儿
  9. 【算法】 哈希表 自己模拟hashMap
  10. 随想录(从开源or1k看gcc后端移植)
  11. C语言深入浅出可变参数函数的使用技巧(转)
  12. Java多线程之内置锁与显示锁
  13. 墨者学院 - 零基础学习手工SQL注入
  14. 微信小程序富文本编辑器
  15. 同步助手java_八大手机平台全覆盖 QQ同步助手Java版发布
  16. linux下云翔php,《云翔曲谱》目录
  17. 在服务器上搭建ftp站点
  18. c语言音乐程序天空之城,51单片机演奏天空之城 c语言源程序
  19. 服务器远程连接端口号修改
  20. 编写站点robots文件

热门文章

  1. 快速记忆python函数-python入门(误)速记
  2. python文件传输模块ftplib模块的使用
  3. mysql协议解析器_mysql协议解析
  4. @import注解_Spring 注解之@Import 注入的各种花活
  5. log4php的使用
  6. Github上的十大机器学习项目
  7. mysql中的触发器
  8. 记录工作中linux相关操作
  9. Cesium 中两种添加 model 方法的区别
  10. [ZJOI2007]仓库建设(斜率优化)