Docker 如果shell脚本是通过批处理生成的,如何编写shell输出

Docker 如果shell脚本是通过批处理生成的,如何编写shell输出,docker,batch-file,escaping,Docker,Batch File,Escaping,我有一个Docker容器myContainer和两个简单的批处理脚本: generateShell.bat runShell.bat 但那样的话,我只有 Hello World 在Windows命令提示符下,不在容器中或主机上生成.txt文件。您最好直接编写脚本(而不是使用shell脚本编写),将其复制到图像中(而不是在stdin上传递),并将其作为容器的CMD(而不是使用docker exec)。您可以使用命令行参数或环境变量在运行时自定义脚本的行为。这种方法是否简化了此设置?我的原

我有一个Docker容器
myContainer
和两个简单的批处理脚本:

  • generateShell.bat
  • runShell.bat
但那样的话,我只有

Hello World

在Windows命令提示符下,不在容器中或主机上生成.txt文件。

您最好直接编写脚本(而不是使用shell脚本编写),将其复制到图像中(而不是在stdin上传递),并将其作为容器的
CMD
(而不是使用
docker exec
)。您可以使用命令行参数或环境变量在运行时自定义脚本的行为。这种方法是否简化了此设置?我的原始问题迫使我使用参数生成shell脚本。使用称为与某些shell特性相关的其他几个bug的参数自定义脚本的行为,因此不是这样我的路径。你是说像这样,
echo-echo-Hello-World^>output.txt>>helloworld.sh
?@Compo,哇,它成功了,非常感谢!如果你知道,为什么会这样,你能把它写成一个答案吗?
@echo off 
call generateShell.bat
docker exec -i myContainer bash < helloworld.sh
echo echo Hello World > output.txt>> helloworld.sh
Hello World