编程 Shell 里给变量赋值为多行文本

2024-11-18 20:25:45 +0800 CST views 1284

Shell 里给变量赋值为多行文本

通常在 Shell 中给变量赋值时,我们通常只能赋值单行文本内容,例如:

var="Hello World"

然而,如果我们想要给变量赋值多行文本,以上方法就无法满足需求。为了实现多行文本赋值,我们可以使用 read 命令,并结合 EOF 标记符来实现。

使用 read 命令和 EOF 赋值多行文本

我们可以使用 read 命令从 EOF 标记内读取内容并赋值给变量:

read -r -d '' var <<EOF
text 1
text 2
text 3
EOF

关键参数解释:

  • read:从标准输入或其他源读取内容并赋值给变量。
  • -r:告诉 read 不转义反斜杠符号,确保原始文本中的特殊符号不会被处理。
  • -d '':指定读取内容的结束符为空字符串,表示一直读取到输入结束为止。
  • <<EOF:用于标识多行文本块的开始,EOF 是结束符。
  • EOF:结束标记,表示多行文本的结束位置。

示例

read -r -d '' var <<EOF
This is the first line.
This is the second line.
And this is the third line.
EOF

# 输出变量内容
echo "$var"

运行结果:

This is the first line.
This is the second line.
And this is the third line.

从外部文件读取内容并赋值

除了从嵌入的文本读取内容赋值外,还可以直接从文件中读取内容:

read -r -d '' var < file.txt

该命令会读取 file.txt 的所有内容,并将其赋值给变量 var

总结

通过使用 read 命令结合 EOF,我们可以轻松地为 Shell 变量赋值多行文本,不论是从嵌入文本块还是从文件中读取内容,这种方式都非常方便。

复制全文 生成海报 Shell编程 脚本 命令行

推荐文章

pip安装到指定目录上
2024-11-17 16:17:25 +0800 CST
Vue3中哪些API被废弃了?
2024-11-17 04:17:22 +0800 CST
Go的父子类的简单使用
2024-11-18 14:56:32 +0800 CST
Rust 并发执行异步操作
2024-11-19 08:16:42 +0800 CST
Vue3中如何处理路由和导航?
2024-11-18 16:56:14 +0800 CST
CSS 奇技淫巧
2024-11-19 08:34:21 +0800 CST
Vue3中的事件处理方式有何变化?
2024-11-17 17:10:29 +0800 CST
如何实现虚拟滚动
2024-11-18 20:50:47 +0800 CST
Nginx 状态监控与日志分析
2024-11-19 09:36:18 +0800 CST
JavaScript 的模板字符串
2024-11-18 22:44:09 +0800 CST
12 个精选 MCP 网站推荐
2025-06-10 13:26:28 +0800 CST
JavaScript中的常用浏览器API
2024-11-18 23:23:16 +0800 CST
一个简单的打字机效果的实现
2024-11-19 04:47:27 +0800 CST
Python设计模式之工厂模式详解
2024-11-19 09:36:23 +0800 CST
Requests库详细介绍
2024-11-18 05:53:37 +0800 CST
windows安装sphinx3.0.3(中文检索)
2024-11-17 05:23:31 +0800 CST
Go 接口:从入门到精通
2024-11-18 07:10:00 +0800 CST
LLM驱动的强大网络爬虫工具
2024-11-19 07:37:07 +0800 CST
curl错误代码表
2024-11-17 09:34:46 +0800 CST
Vue 3 中的 Fragments 是什么?
2024-11-17 17:05:46 +0800 CST
Manticore Search:高性能的搜索引擎
2024-11-19 03:43:32 +0800 CST
Golang 中你应该知道的 Range 知识
2024-11-19 04:01:21 +0800 CST
PHP 代码功能与使用说明
2024-11-18 23:08:44 +0800 CST
避免 Go 语言中的接口污染
2024-11-19 05:20:53 +0800 CST
Vue3中如何进行性能优化?
2024-11-17 22:52:59 +0800 CST
程序员茄子在线接单