shell大段字符串处理之Here Document
嘻嘻发布于2020-10-27
最后更新于2020年10月24日
浏览如果你在用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