• shell中 << EOF 和 EOF 使用


    转载请注明出处:

      EOF(End of File)在Shell中通常用于指示输入的结束,并在脚本或命令中进行多行输入。它允许用户指定一个特定的分界符来表示输入的结束,通常用于创建临时文件、重定向输入或在脚本中提供多行输入。

      EOF允许用户指定一个特定标记,在其之后输入的所有文本都被当作输入,直到再次看到该标记为止。这使得在Shell中进行多行输入变得简单且直观。

    使用方法

      在shell中,EOF通常与Here文档结合使用。Here文档是一种将多行输入传递给命令或脚本的方法,而EOF则用于指示输入的结束。

      下面是EOF的一些使用场景及示例说明:

    1.重定向输入到命令

    cat << EOF
    This is a multi-line input
    Using EOF in shell
    to indicate the end of input
    EOF

      这里,cat命令将读取Here文档中的多行输入,直到遇到EOF为止。

    2.在脚本中使用EOF

    复制代码
    #!/bin/bash
    echo "Starting the script"
    # Commands here
    cat << EOF
    This is a multi-line input
    Within a shell script
    EOF
    # More commands
    echo "Script finished"
    复制代码

      在这个例子中,EOF用于在脚本中提供多行输入。

    3.创建临时文件

    cat > file.txt << EOF
    This is the content of the file
    It spans multiple lines
    EOF

      这里,cat命令将把Here文档中的内容重定向到file.txt文件中,直到遇到EOF为止。

    4.使用多个Linux shell命令行的示例:

    复制代码
    cat << EOF
    This is a multi-line input
    Using multiple shell commands within Here document:
    $(ls -l)
    $(echo "Hello, world!")
    EOF
    复制代码

      在这个示例中,ls -lecho "Hello, world!"是两个不同的Linux shell命令。当Here文档中包含$(...)时,其中的内容会被解释并执行。因此,在此示例中,在Here文档中执行了ls -l以及echo "Hello, world!"这两个命令。

    5.shell脚本中使用:

    复制代码
    #!/bin/bash
    
    # 远程登录到服务器
    ssh -o "StrictHostKeyChecking=no" -o "UserKnownHostsFile=/dev/null" root@192.168.118.30 << EOF
       # 在远程服务器上执行命令
       echo "Hello, World!"
       hostname -I    ##30环境配置打印
    EOF
    ##40环境配置打印
    hostname -I
    复制代码

      这段shell脚本在 40 的服务器节点上执行时,<< EOF 与 EOF 之间的命令执行是 在 前面ssh 的 192.168.118.30 的服务器节点上执行的。如果没有 <

     

  • 相关阅读:
    【实践篇】Redis最强Java客户端(一)之Redisson入门介绍
    基于CPLD的VHDL代码学习、解析
    BI低代码数字化应用搭建平台
    【Linux - 操作技术】八 软件包管理
    优化理论20---插值法: Hermite插值法、龙格现象、分段插值、样条插值
    com.google.code:kaptcha-2.3.jar
    idea2021 创建Servlet模板 & idea2021如何修改Servlet模板
    AQS源码阅读
    C++---string类的使用和模拟实现
    数据结构—内部排序(上)
  • 原文地址:https://www.cnblogs.com/zjdxr-up/p/17935924.html