首页 > 系统相关 >shell中 << EOF 和 EOF 使用

shell中 << EOF 和 EOF 使用

时间:2024-01-04 10:06:39浏览次数:22  
标签:shell EOF Here cat 文档 使用 输入

转载请注明出处:

  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" [email protected] << EOF
   # 在远程服务器上执行命令
   echo "Hello, World!"
   hostname -I    ##30环境配置打印
EOF
##40环境配置打印
hostname -I

  这段shell脚本在 40 的服务器节点上执行时,<< EOF 与 EOF 之间的命令执行是 在 前面ssh 的 192.168.118.30 的服务器节点上执行的。如果没有 <<EOF 与 EOF ,那后面的命令解释执行将都在shell脚本运行的40环境。

 



标签:shell,EOF,Here,cat,文档,使用,输入
From: https://blog.51cto.com/u_15535797/9095434

相关文章

  • lottie 动画在 vue 中的使用
    前言最近我所负责的项目中,我采用了动画效果,并开始使用gif来实现。然而,在实践过程中,我发现gif格式的动画在git中出现了明显的锯齿感,这让我非常困扰。为了追求更完美的表现效果,我最终选择了lottie来实现我的动画需求。我深知动画效果的呈现对于用户体验至关重要,因此我非常认......
  • python使用Gemini API
    谷歌免费开放了Gemini(https://ai.google.dev)的API,每分钟可发出60个请求(RPM)。这样我们除了免费体验Bard:https://bard.google.com/外,还可以写程序来调用。安装依赖pipinstall-q-Ugoogle-generativeai-q或--quiet:这个参数用于减少安装过程中输出的信息量。通常,pipinstall......
  • 如何使用ps抠图(两种扣图方法)
    PS抠图的方法有很多种,以下是其中两种常用的方法:方法一:适用于背景颜色单一、较为简单的图片。选中魔棒工具/魔术橡皮擦,点击背景,出现选区,点击Delete键删除。点击快速选择工具,沿着所需图形的边缘点击。该工具会自动识别图形的边缘并形成选区。方法二:适用于背景颜色复杂、需要精细处理......
  • 使用HTML5实现多文件上传
    入门Fileinput之所以叫fileinput是因为它是一个标准的input元素,且其type属性被设置为"file"。很多年以来,fileinput一次只能选择并上传单个文件。在新的HTML5规范中为input元素添加了多选模式。当然,不同浏览器对于规范的实现一直以来都不尽相同。比如,Firefox3.6和WebKit以及Firef......
  • 使用OHOS SDK构建filament
    参照OHOSIDE和SDK的安装方法配置好开发环境。从gitee下载源码。执行如下命令:gitclonehttps://gitee.com/oh-graphics/filament.git-bv1.32.1-ohos构建过程分为两步,先构建Windows平台的工具链,然后再构建OHOS平台的库文件。Windows平台进入源码所在的目录,创建批处理文件......
  • QProgressDialog用法及结合QThread用法,四种线程使用
    1QProgressDialog概述QProgressDialog类提供耗时操作的进度条。进度对话框用于向用户指示操作将花费多长时间,并演示应用程序没有冻结。此外,QPorgressDialog还可以给用户一个中止操作的机会。进度对话框的一个常见问题是很难知道何时使用它们;操作在不同的硬件上花费不同的时间......
  • 【机器学习】常见算法详解第1篇:K近邻 KNN和API使用(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • 无涯教程-jsoup - 使用选择器语法
    以下示例将HTML解析为Document对象之后使用Selector方法操作元素,jsoup支持类似于CSSSelector选择器。Documentdocument=Jsoup.parse(html);//awithhrefElementslinks=document.select("a[href]");document.select(expression)方法解析给定的CSSSelector表达式,以选择ht......
  • 蓝牙信标如何正确使用
    随着物联网蓬勃发展,物联网定位作为重要分支,在物联网建设中发挥重要作用,蓝牙定位是物联网定位中最常见的定位方式之一,蓝牙定位信标是蓝牙定位最重要的组成部分,小编详细讲述下如何正确使用蓝牙信标。1、开机设备配置了两节ER14250电池,低功耗,出厂即工作,无需做开机动作。2、数据交互蓝......
  • 3dmax全景图用什么渲染 全景图云渲染使用教程
    在给客户展示设计概念时,应用3dsMax创建的全景图是一个高效直观的方法。这种方式不仅可以全方位地呈现整个空间,让客户沉浸式地感受设计师的创意,而且在展现大型空间设计,如展览馆或者会议室等,效果尤其显著,帮助客户完整地理解设计意图。3dmax全景图用什么渲染?在制作3dsMax全景图......