echo多行文字到文本

dockerfile 中写入多行

echo 多行文字到文本

这篇文章为了记录自己写 Dockerfile 时踩的坑,分三部分描述 echo 内容到文件的用法

  1. shell 脚本 echo 单行文字到文本
  2. shell 脚本 echo 多行文字到文本
  3. Dockerfile 中 echo 多行文字到文本

1. shell 脚本 echo 单行文字到文本

这个是 echo 最常用的用法

1
2
#!/bin/bash
echo "test测试" > a.txt

2. shell 脚本 echo 多行文字到文本

1
2
3
4
5
6
7
#!/bin/bash
cat >a.txt<<EOF # 开始
test测试
多行文本
重定向
到文件
EOF             # 结束

其中 EOF 表示自定义终止符,所以如果脚本写成下面这样,一样是可以使用的:

1
2
3
4
5
#!/bin/bash
cat >a.txt<<ABC # 开始
test测试
多行文本
ABC             # 结束

只不过我们正常不这么玩,这样显得太另类,也不便于多人协作时,每个人的理解。

3. Dockerfile 中 echo 多行文字到文本

Dockerfile 的使用场景,是在 build 镜像时,需要更换 ubuntu 的镜像源为阿里云,这个时候就需要修改 sources.list。

要用 echo -e 否则不换行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
FROM ubuntu:18.04

RUN mv /etc/apt/sources.list /etc/apt/sources_bak.list \
    && echo -e 'deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse\n\
\n\
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse\n\
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse\n'\
> /etc/apt/sources.list

image-20230720110441517

4. Reference

  1. EOF 是什么?

  2. [linux<eof

5 替换国内源

centos8

1
2
3
4
5
6
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
       -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
     -i.bak \
        /etc/yum.repos.d/CentOS-Base.repo \
        /etc/yum.repos.d/CentOS-Extras.repo \
    /etc/yum.repos.d/CentOS-AppStream.repo

centos7

1
2
3
4
5
6
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
       -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.ustc.edu.cn/centos|g' \
     -i.bak \
  /etc/yum.repos.d/CentOS-Base.repo \
    /etc/yum.repos.d/CentOS-Extras.repo \
  /etc/yum.repos.d/CentOS-AppStream.repo

建立文件夹 软连

image-20230721085128879

软连的目录下,无法进行 docker-compose down 这是为什么

应该是属于隔离性质的造成的。doris-mysql 是 mysql-flink-doris 的软连

image-20230721090737670

linux 设置时区

1
sudo timedatectl set-timezone Asia/Shanghai
Licensed under CC BY-NC-SA 4.0
最后更新于 Jan 06, 2025 05:52 UTC
comments powered by Disqus
Built with Hugo
主题 StackJimmy 设计
Caret Up