问题描述
我有一个包含多个奇点命令的 shell 脚本
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 中运行。我该怎么办?
解决方法
您正在连接到 shell 脚本内的交互式命令 shell,您只需要执行命令即可。
singularity exec ...
https://sylabs.io/guides/3.7/user-guide/cli/singularity_exec.html
,所以基本上我不得不用 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
在newscript.sh
中调用奇点shell后,此方法将在奇点shell中运行myscript.sh