首页 > 解决方案 > hashcorp 打包器 shell 配置程序中的 sed 命令失败

问题描述

使用 sed 命令的就地更新,我试图在文件中搜索一个字符串,并将其替换为多行。这就是我想要更新文件的方式。

sed 之前:foo.sh

#!/bin/sh

sed 命令:

sed -i 's|#!\/bin\/sh|#!\\/bin\\/sh\n\n. \\/etc\\/company\\/aws_functions\n\nif [ -f \\/etc\\/company\\/user_data ];then\n\t. \\/etc\\/company\\/user_data\nfi\n|g' /tmp/foo.sh

sed 之后:foo.sh

#!/bin/sh

. /etc/company/aws_functions

if [ -f /etc/company/user_data ];then
    . /etc/company/user_data
fi

这完美地工作,但是当尝试使用打包器外壳配置程序执行相同的命令时,我不断收到以下错误。

sed: -e expression #1, char 23: unterminated `s' command[0m

我也关注了https://github.com/hashicorp/packer/issues/9091,但没有运气。任何解决此问题的指针将不胜感激。谢谢。

标签: shellsedpacker

解决方案


推荐阅读