使用 sed 脚本创建 bash 脚本时出现问题

使用 sed 脚本创建 bash 脚本时出现问题

因此,当我使用以下命令在 Docker 宣言中创建文件时echo

RUN \
echo "#!/bin/bash\n\
mounted_tz=$(cat /etc/timezone)\n\
sed -i -r \"s~^(log_timezone\s*=\s*).*$~\1\'\$mounted_tz\'~\" /etc/postgresql/9.6/main/postgresql.conf\n\
sed -i -r \"s~^(timezone\s*=\s*).*$~\1\'\$mounted_tz\'~\" /etc/postgresql/9.6/main/postgresql.conf\n" > /root/pgtz-updaters; \

然后在创建的容器中打开此文件,我看到:

#!/bin/bash
mounted_tz=Etc/UTC
sed -i -r "s~^(log_timezone\s*=\s*).*$~^A\'$mounted_tz\'~" /etc/postgresql/9.6/main/postgresql.conf
sed -i -r "s~^(timezone\s*=\s*).*$~^A\'$mounted_tz\'~" /etc/postgresql/9.6/main/postgresql.conf

我怎样才能让回声不将这个字符解码成这个?

相关内容