【问题标题】:singularity shell inside a bash scriptbash脚本中的奇点shell
【发布时间】:2021-01-05 18:07:20
【问题描述】:

我正在尝试在脚本中运行奇异 shell,并在奇异图像中运行多个命令,包括 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?或者是否可以在避免创建脚本的同时在奇点内运行多个命令?

【问题讨论】:

    标签: bash shell conda singularity-container


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      不要使用singularity shell,而是使用singularity exec:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-02-23
        • 2013-02-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-27
        • 1970-01-01
        相关资源
        最近更新 更多