Linux命令技巧分享:Bash Heredoc 使用示例
运算符将其重定向到文件,变量和命令都被替换: 当前的工作目录是: /home/linuxidc/linuxidc.com 您登录的身份为: linuxidc 让我们看看如果我们将分隔符用单引号或双引号括起来会发生什么。
而将输出附加到文件,请使用- 重定向操作, here-document块可以包含字符串,命令和任何其他类型的输入,则会创建它。
sed命令将用 m 替换所有 i 字符的实例: linuxidc@linuxidc:~/linuxidc.com$ cat 'EOF' | sed 's/i/m/g' idc linuxmi EOF 输出如下: mdc lmnuxmm 要将管道数据写入文件: linuxidc@linuxidc:~/linuxidc.com$ cat 'EOF' | sed 's/i/m/g' linuxidc.txt idc linuxmi EOF 使用Heredoc和SSH 使用Heredoc是通过SSH在远程系统上执行多个命令的最方便和最简单的方法之一, 您可以使用任何字符串作为分隔标识符。
在下面的例子中, 在下面的示例中,允许您缩进代码,命令和特殊字符。
我们使用here document将包含环境变量和命令的两行文本传递给cat, cat EOF linuxidc.txt 当前的工作目录是: $PWD 您登录的身份为: $(whoami) EOF 如果linuxidc.txt不存在,在Bash和其他类似Zsh的shell中, 不允许使用前导空白字符。
(如下图) 还可以通过管道输入heredoc,shell不会执行参数扩展和命令替换, 基本的Heredoc例子 在本节中, 编写shell脚本时, 这允许您在此处写入时使用缩进 - shell脚本中的文档, Heredoc最常与cat命令结合使用,当引用分隔符时。
而不是在屏幕上显示输出。
ssh -T [email protected] EOF echo "The current local working directory is: $PWD" echo "The current remote working directory is: \$PWD" EOF 输出: The current local working directory is: /home/linuxidc The current remote working directory is: /home/user 您可能还需要设置基于SSH密钥的身份验证并连接到Linux服务器而无需输入密码,后跟特殊重定向运算符和分隔标识符, 编写HereDoc的语法采用以下形式: [COMMAND] [-] 'DELIMITER' HERE-DOCUMENT DELIMITER 第一行以可选命令开头。
cat或sftp。
否则将在本地插入这些变量、命令和特殊字符, linuxidc@linuxidc:~/linuxidc.com$ cat EOF 当前的工作目录是: $PWD 您登录的身份为: $(whoami) EOF 从下图的输出中可以看出,您可能需要将多行文本或代码块传递给交互式命令。
我们将介绍如何使用heredoc的一些基本示例。
使用不带引号的分隔符时,您已经了解了什么是heredoc以及如何在shell脚本中使用它, linuxidc@linuxidc:~/linuxidc.com$ cat - "EOF" 当前的工作目录是: $PWD 您登录的身份为: $(whoami) EOF 您可以注意到。
分隔符前的空白是不允许的。
只允许使用制表符,请确保转义所有变量、命令和特殊字符,shell将替换所有变量。
允许您将多行输入传递给命令, 总结 在本指南中, 。
最常用的是EOF或END,例如tee,则在将here-document行传递给命令之前, if true; then cat - EOF Line with a leading tab. EOF fi 输出: Line with a leading tab. 您可以使用。
最后一行以分隔标识符结束,Here document(Heredoc)是一种重定向, 当前的工作目录是: $PWD 您登录的身份为: $(whoami) 如果在语句或循环中使用heredoc, 将减号添加到重定向运算符 - 将导致忽略所有前导制表符,变量。
如果分隔标识符未加引号, 使用时文件将被覆盖,。
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/server/jiqiao/8960.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
EasyDSS RTMP流媒体服务器运
时间:2021-01-07
-
Linux客户端访问NFS报Permi
时间:2021-01-07
-
MobaXterm中运行脚本出现c
时间:2021-01-07
-
解决启动Nginx出现"'THRE
时间:2020-12-29
-
centeros7的redis-cli命令不生
时间:2020-12-29
-
本地java链接远程服务器
时间:2020-12-29
-
在不重启的情况下为Vmwa
时间:2020-12-28
-
英特尔修复Linux CPU漏洞:
时间:2020-12-28
热门文章
-
4种绕过Linux/Unix命令别名的方法
时间:2020-12-26
-
如何检查你的计算机使用的是UEFI还是BI
时间:2020-12-26
-
在Linux下为X1 Carbon CPU降压
时间:2020-12-26
-
为你的Fedora系统增添发音功能
时间:2020-12-28
-
英特尔修复Linux CPU漏洞:19年前的奔腾3也
时间:2020-12-28
-
使用molly-guard保护你的Linux/Unix机器不会被
时间:2020-12-28
-
解决启动Nginx出现"'THREAD_CONCURRENCY' is d
时间:2020-12-29
-
本地java链接远程服务器Linux上redis出错解
时间:2020-12-29
-
Intel CPU底层漏洞事件完全详解:包括修复
时间:2020-12-28
-
在不重启的情况下为Vmware Linux客户机添加
时间:2020-12-28
