bash脚本中的奇异外壳



我试图在脚本中运行奇异外壳,并在奇异图像中运行多个命令,包括conda。下面是我尝试做的一个例子。运行下面的my_script.sh不起作用。在shell命令之后,其他一切似乎都在奇点图像之外运行。

## my_script.sh ##
singularity shell image.sif
source activate test_env
pbsv --version
conda deactivate

我知道我可以把所有的命令放在another_script.sh中,然后用singularity exec image.sif another_script.sh调用那个脚本,但我尽量避免创建多个小脚本。

有可能在bash脚本中运行奇点shell吗?或者是否可以在奇点内运行多个命令,同时避免创建脚本?

singularity shell用于获取交互式shell会话,而不是运行脚本。在您的示例中,后续命令都是在shell进程完成后运行的,而不是在shell内部。

如果删除第一行,singularity exec image.sif my_script.sh将在容器内运行脚本。conda deactivate也是不必要的,因为环境在容器内。

我发现我可以运行多个命令,而无需创建脚本。

不使用奇异壳,而是使用奇异exec:

singularity exec bash -c "source activate test_env && pbsv --version"

相关内容

  • 没有找到相关文章

最新更新