如何使用BASH在名为myconfig.conf的文件中写入多行?

#!/bin/bash
kernel="2.6.39";
distro="xyz";

echo <<< EOL
line 1, ${kernel}
line 2,
line 3, ${distro}
line 4
line ...
EOL >> /etc/myconfig.conf;
cat /etc/myconfig.conf;

推荐答案

语法(<<<)和使用的命令(echo)是错误的.

正确答案是:

#!/bin/bash

kernel="2.6.39"
distro="xyz"
cat >/etc/myconfig.conf <<EOL
line 1, ${kernel}
line 2, 
line 3, ${distro}
line 4 line
... 
EOL

cat /etc/myconfig.conf

这种 struct 被称为Here Document,可以在Bash手册页man --pager='less -p "\s*Here Documents"' bash下找到.

Linux相关问答推荐

空字符串和空文件的区别

在shell 中使用排除模式的grep

在Zenity进度窗口上单击取消后如何停止bash脚本

如何知道进程组中的所有进程是否都已收集?

重新运行时避免 Linux bash 脚本中的文件重命名重复

如何过滤 Bash 的正则表达式(Linux)中的所有值,除了一个?

在 linux 中插入带有 sed 命令的文件的行

Rust unix 进程

在 bash 中解析变量

Eclipse 的 C# 插件

为什么导入 SQL 这么慢?

如何在 Linux 中通过控制台输出启动 Tomcat?

根据日期范围过滤日志(log)文件条目

GNU Octave 方法对矩阵中的每个项目进行操作.octave arrayfun(...)示例

有什么方法可以在linux中保留但不提交内存?

Windows 开发环境值得付出代价吗?

linux perf:如何解释和查找热点

使用 Bash 查找和复制文件

如何通过 xmllint 使用 XSD 验证 XML 文件

如何通过命令行识别特定的 Linux 风格?