繁体   English   中英

bash 脚本内的奇点 shell

[英]singularity shell inside a bash script

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

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

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

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

不要使用奇异点 shell,而是使用奇异点 exec:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM