【发布时间】:2021-09-11 06:54:25
【问题描述】:
我正在尝试在 bash 脚本中运行几个不同的进程。我正在使用 Mac。基本上,我正在运行一个名为 OpenFOAM 的 CFD 软件,该软件在 docker 容器中运行,在我开始运行模拟之前需要启动它。我在https://openfoam.org/download/7-macos/ 遵循他们的指示。我已经安装了 X11。
到目前为止,我的脚本一直运行到容器启动的部分,但它不执行运行模拟的容器内部的命令“simpleFoam”。基本上,它会启动容器并停止。
如何在 OpenFoam 容器启动后运行命令?到目前为止,这是我的代码:
#!/bin/bash
cd ~/openfoam/run/airFoil2D
openfoam7-macos
simpleFoam
它基本上可以在openfoam7-macos(启动容器)之前工作,但之后什么都不会执行。
openfoam7-macos script 似乎在后台运行docker。我怎样才能传递一个命令来执行呢?
【问题讨论】:
-
不清楚容器在图片中的位置或
xterm运行的位置。你有运行 X11 的容器吗?simpleFoam是该容器中的有效安装命令吗?你是说 Docker 容器,还是别的什么? -
顺便说一句,
cd; cd somewhere可以简化为cd ~/somewhere -
你是对的 - 我意识到我不需要专门使用 xterm,而是任何终端。我在桌面上运行 docker,当我 cd 进入 openfoam/run/airFoil2D 文件夹时,我使用“openfoam7-macos”启动 OpenFOAM docker 映像。在这里更好地解释,在“步骤 6”openfoam.org/download/7-macos
-
运行 'openfoam7-macos' 提供了一个带有 OpenFOAM 的 bash 终端
-
在终端中使用
&&运行多个命令将执行一个命令,直到它完成,然后再继续执行下一个命令。在这种情况下,完成意味着一旦您从打开的 bash 终端退出。你需要一种不同的方法。例如,docker exec可以在运行的容器中执行命令。
标签: bash macos docker shell openfoam