docker 调用singularity shell后运行脚本中的下一个命令

a7qyws3x  于 2023-01-12  发布在  Docker
关注(0)|答案(2)|浏览(136)

我有一个shell脚本,其中包含多个singularity命令myscript.sh

#!/bin/sh/

singularity shell -B /home/user/Desktop/ /home/user/image/some_image.simg
/home/user/miniconda/activate my_env
cd /app/app_folder/scripts
ls -ash

当我运行脚本时,它在调用shell后卡住。

singularity>

但是我希望后续的命令在调用的shell中运行,我该怎么做呢?

3phpmpom

3phpmpom1#

您正在连接到shell脚本中的交互式命令shell,您需要做的只是执行命令。

singularity exec ...

https://sylabs.io/guides/3.7/user-guide/cli/singularity_exec.html

fwzugrvs

fwzugrvs2#

因此,基本上我必须将shell替换为exec,并将后续命令保存在不同的可执行bash脚本newscript.sh中,该脚本包含

#!/bin/sh

/home/user/miniconda/activate my_env
cd /app/app_folder/scripts
ls -ash

然后运行myscript.sh

#!/bin/sh

singularity exec -B /home/user/Desktop/ /home/user/image/some_image.simg bash newscript.sh

myscript.sh中调用奇异壳后,该方法将在奇异壳中运行newscript.sh

相关问题