我想在 Dockerfile 中编写以下 RUN 命令。但是,docker 没有保留新行。
RUN echo "[repo] \
name = YUM Repository \
baseurl = https://example.com/packages/ \
enabled = 1 \
gpgcheck = 0" > /etc/yum.repos.d/Repo.repoxyz
我知道每行末尾的 \
会转义新行。但是,有什么办法可以写多行来保留新行?
原文由 Venkata Jaswanth 发布,翻译遵循 CC BY-SA 4.0 许可协议
您可以将所谓的“ANSI-C 引用”与
$'...'
一起使用。 它最初是一个 ksh93 功能,但现在可以在 bash、zsh、mksh、FreeBSD sh 和 busybox 的 ash 中使用(但仅当它使用 ENABLE_ASH_BASH_COMPAT 编译时)。由于 RUN 默认使用
/bin/sh
作为 shell, 您需要先使用 SHELL 指令切换到 bash 之类的东西。以 --- 开始您的命令,以
$'
结束它并使用'
\n\
换行,如下所示: