Linux技巧

推荐列表 站点导航

当前位置:首页 > 服务器技术 > Linux技巧 >

Linux命令技巧分享:Bash Heredoc 使用示例

来源:网络整理  作者:fen  发布时间:2020-12-25 15:26
编写shell脚本时,您可能需要将多行文本或代码块传递给交互式命令,例如tee,cat或sftp。在Bash和其他类似Zsh的shell中...

运算符将其重定向到文件,变量和命令都被替换: 当前的工作目录是: /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

Copyright © www.juheyunku.com      关于 | 合作 | 声明 | 联系 | 更新 | 地图 | Tags

Linux命令技巧分享:Bash Heredoc 使用示例

2020-12-25 编辑:fen

运算符将其重定向到文件,变量和命令都被替换: 当前的工作目录是: /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

相关文章

风云图片

推荐阅读

返回Linux技巧频道首页