Linux笔记之Bash脚本中的EOF

Linux笔记之Bash脚本中的EOF

code review!

文章目录

在 Bash 脚本中, EOF 通常用于定义一个多行字符串或文档块。这种技术被称为"Here Document"(缩写为 heredoc)。heredoc 允许你在脚本中嵌入多行文本,而不需要每行都使用引号或转义字符。

以下是一些使用 heredoc 的示例:

基本用法

bash 复制代码
#!/bin/bash

cat <<EOF
这是一个多行字符串。
可以在这里添加任意数量的行。
EOF

在这个示例中,cat <<EOF 指示 Bash 开始一个 heredoc,直到它遇到一个单独的 EOF 行为止。

自定义结束符

可以用任意标识符代替 EOF,只要它与开始标识符匹配:

bash 复制代码
#!/bin/bash

cat <<END
这是另一个多行字符串示例。
可以使用任何标识符作为结束符。
END

变量替换

默认情况下,heredoc 会对其内容进行变量替换:

bash 复制代码
#!/bin/bash

name="Alice"
cat <<EOF
你好,$name!
EOF

输出将会是:

复制代码
你好,Alice!

禁用变量替换

如果不想进行变量替换,可以在标识符前加上引号:

bash 复制代码
#!/bin/bash

name="Alice"
cat <<'EOF'
你好,$name!
EOF

输出将会是:

复制代码
你好,$name!

用于脚本嵌入

heredoc 也可以用于嵌入其他脚本或命令:

bash 复制代码
#!/bin/bash

python3 <<EOF
print("Hello from Python script!")
EOF

重定向到文件

还可以将 heredoc 的内容重定向到一个文件:

bash 复制代码
#!/bin/bash

cat <<EOF > output.txt
这是写入到文件中的内容。
EOF

这样,output.txt 文件将包含 heredoc 中的内容。

与命令组合

heredoc 可以与任何需要多行输入的命令组合使用,比如 sshftp 等:

bash 复制代码
#!/bin/bash

ssh user@remote_host <<EOF
echo "执行远程命令"
ls -l
EOF

总结

heredoc 是 Bash 脚本中非常强大且灵活的工具,适用于需要多行文本或复杂嵌入的场景。通过合理使用 heredoc,可以大大简化脚本编写过程,提高可读性和维护性。

相关推荐
HIT_Weston1 小时前
27、【Ubuntu】【远程开发】内网穿透:CA 签名
linux·运维·ubuntu
阿巴~阿巴~1 小时前
基于UDP协议的英汉翻译服务系统:从网络通信到字典查询的完整机制
linux·服务器·网络·网络协议·udp协议·套接字绑定·英汉翻译服务系统
阿巴~阿巴~1 小时前
简易回声服务器实现与网络测试指南
linux·服务器·网络·udp协议·网络测试·udp套接字编程
凡间客4 小时前
Ansible安装与入门
linux·运维·ansible
君以思为故4 小时前
认识Linux -- 进程概念
linux·服务器
_OP_CHEN4 小时前
Linux网络编程:(八)GCC/G++ 编译器完全指南:从编译原理到实战优化,手把手教你玩转 C/C++ 编译
linux·运维·c++·编译和链接·gcc/g++·编译优化·静态链接与动态链接
lkbhua莱克瓦244 小时前
Java基础——方法
java·开发语言·笔记·github·学习方法
阿乐艾官5 小时前
【十一、Linux管理网络安全】
linux·运维·web安全
p66666666685 小时前
STM32-bootloader引导程序跳转机制笔记
笔记·stm32·嵌入式硬件
Code Warrior6 小时前
【Linux】Socket 编程预备知识
linux·网络·c++