• linux EOF 用法


    这篇文章主要讲解了“linux的eof怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“linux的eof怎么使用”吧!

    linux的eof是自定义终止符,其全称是“END Of File”;eof不是固定的,可以随意设置别名,在linux中按“ctrl-d”就代表eof;eof一般会配合cat,能够输出多行文本。

    一、EOF的用法

    EOF是(END Of File)的缩写,表示自定义终止符。既然自定义,那么EOF就不是固定的,可以随意设置别名,在linux按ctrl-d 就代表EOF。

    EOF一般会配合cat能够多行文本输出。

    其用法如下:

    <

    ....                  #输入内容

    EOF            #结束

    还可以自定义,比如自定义:

    <

    ....

    ABC              #结束

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

    <:输入重定向

    >:输出重定向

    >>:输出重定向,进行追加,不会覆盖之前内容

    <<:标准输入来自命令行的一对分隔号的中间内容

    例子1:

    [root@ren5 ~]# cat <

    > hello

    > EOF

    hello

    我们知道cat的操作对象是文件,但是例1中cat的操作对象不是文件,而是用户输入;那么我们可以这样理解例1:先在文件file中输入“Hello”,再用cat file输出其中的内容。

    也就是说我们可以用一个文件来替代"<< EOF EOF"。

    反过来说,如果操作命令中的文件是输入对象,也可以用"<< EOF EOF"来替代的。

    例子2:

    [root@ren5 ~]# cat 1.txt

    abc

    [root@ren5 ~]# cat < 1.txt             #向文件1.txt输入覆盖内容(也可以:cat > 1.txt <

    > 123

    > 456

    > 678

    > LOL

    > EOF

    [root@ren5 ~]# cat 1.txt

    123

    456

    678

    LOL

    “<< EOF EOF”的作用是在命令执行过程中用户自定义输入,它类似于起到一个临时文件的作用,只是比使用文件更方便灵活。

    二、cat <

    两个都是获取stdin,并在EOF处结束stdin,输出stdout。

    在我们使用cat <

    如果重定向的操作符是<<-,那么分界符(EOF)所在行的开头部分的制表符(Tab)都将被去除。这可以解决由于脚本中的自然缩进产生的制表符。

    例子1

    [root@ren5 ~]# cat 2.sh

    #!/bin/bash

    cat <

    你好,EOF!

    EOF

    [root@ren5 ~]# sh 2.sh

    你好,EOF!

    [root@ren5 ~]# sh 2.sh

    2.sh:行4: 警告:立即文档在第 2 行被文件结束符分隔 (需要 `EOF')

    你好,EOF!

         EOF

    如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。

    例子2

    [root@ren5 ~]# cat 2.sh

    #!/bin/bash

    cat <<-EOF

    你好,EOF!

         EOF

    [root@ren5 ~]# sh 2.sh

    你好,EOF!

    虽然最后的EOF前面有多个制表符和空格,但仍然会被当做结束分界符,表示stdin的结束。

  • 相关阅读:
    环境响应性介孔二氧化硅复合微球/二氧化硅层状双氢氧化物微球的相关制备
    DeepSort 论文解读
    Java学习----JUC包和信号量
    数组初学者向导:使用Python从零开始制作经典战舰游戏
    selenium使用
    计算机毕业设计(附源码)python音蕾心动
    算法基础之字符串哈希
    2025快手校招面试真题汇总及其解答(二)
    【freeRTOS】操作系统之四-事件标志组
    python接口自动化测试 | yaml数据驱动参数化,看完这一篇就够了
  • 原文地址:https://blog.csdn.net/ajax_beijing_java/article/details/132624616