Bash 无法将文件作为入口点命令的一部分进行修改
MyBash 无法将文件作为入口点命令的一部分进行修改,bash,docker,sed,Bash,Docker,Sed,MyDockerfile的入口点CMD在执行我的应用程序(Flask)之前,执行一个shell脚本,根据环境变量修改本地文件。shell脚本如下所示: cat static/login.html | sed "s/some_match/some_substitute/g" > static/login.html 但是,我发现生成的文件是零字节。你知道会发生什么吗 谢谢。我可以重现你的问题,但不能解释。也许还有其他答案 但有一个解决方案可以解决这个问题: 为输出使用与输入不同的文件名 c
Dockerfile
的入口点CMD
在执行我的应用程序(Flask)之前,执行一个shell脚本,根据环境变量修改本地文件。shell脚本如下所示:
cat static/login.html | sed "s/some_match/some_substitute/g" > static/login.html
但是,我发现生成的文件是零字节。你知道会发生什么吗
谢谢。我可以重现你的问题,但不能解释。也许还有其他答案 但有一个解决方案可以解决这个问题:
为输出使用与输入不同的文件名
cat input.txt | sed“s/a/b/g”>input2.txt
或者,使用-i.bak选项
sed-i.bak“s/b/a/g”input.txt
我只能猜测到底发生了什么:在读取输入之前,管道的输出可能已打开以进行写入(非追加) 谢谢你尝试一下。请看上面对我有用的东西。