Categories: Shell编程

shell大段字符串处理之Here Document

如果你在用Linux command或者有一定的编程基础,那么你一定知道在这些语言中经常会遇到大段的字符串处理的情况,对于C++、Java、GO网上的资料,比较多,对应shell,反而大段字符串处理的资料就比较少了。在shell大段字符串的处理,就不得不说"Here Document "

here文档是重定向到交互式程序或命令的文本或代码块。

#!/bin/bash
Command <<EOF
some text
some more text
EOF

上面的命令相当于<tempfile.txt, 从文件中读取输入。

标记here document限制字符串(<<-LimitString)的-选项将在输出中取消前导制表符(但不包括空格)。这有助于提高脚本的可读性。

例子

cat大段字符串

#!/bin/bash
cat <<End-of-message
--------------------------
The quick brown fox
jumped over the lazy dog
--------------------------
End-of-message

s上面的命令等同于cat < file.txt

替换大段文本中变量

#!/bin/bash
ACTION="Quickly"
cat <<End-of-msg
--------------------------
The quick brown fox $ACTION
jumped over the lazy dog
--------------------------
End-of-msg

要禁用参数替换,请在限制字符串两边加引号:<<“消息结束”
在这里,文档也可以用来为变量或函数提供值。

ssh执行多个命令

这个命令非常使用, 配置在jenkins中可以快速的构建出一个发布系统。

ssh server1 << HERE
 command1
 command2
 command3
HERE
5.0
03
Golang中获取当天0时的时间戳
Linux ss命令: 不要再用只会用netstat
嘻嘻

嘻嘻IT: 笔者是一个工作七八年的程序猿老鸟,从事涉及的技术栈主要包括PHP、Linux、Devops等,喜欢研究新技术,尝试新技术,提升技术自动化和开发效率,致力于write less,do more! 技术每年都会层出不穷,领域划分的越来越细,不可能学习所有的东西,保持对技术的好奇心,理解技术中核心思想,做一个有深度,有思想的开发!

Recent Posts

如何在Linux中根据修改日期和时间查找和排序文件

习惯于使用图形用户界面的人可以…

7小时 ago

Golang中如何实现PHP中array_fill函数?

PHP中的array_fill…

8小时 ago

Dify是一个开源的LLM应用程序开发平台(25.8k stars)

Dify是一个开源的LLM应用…

11小时 ago

MyIP一款开源好用IP工具箱(4.6k stars)

MyIP一款开源好用IP工具箱…

1天 ago

asciinema一款优秀终端会话录制工具(13.2k stars)

asciinema是一个优秀的…

2天 ago