Bash 调用singularity shell后在脚本中运行下一个命令

Bash 调用singularity shell后在脚本中运行下一个命令,bash,docker,shell,singularity-container,singularity-compose,Bash,Docker,Shell,Singularity Container,Singularity Compose,我有一个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 #!/bin/sh singularity exec -B /home/user/Desktop/ /home/

我有一个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
#!/bin/sh

singularity exec -B /home/user/Desktop/ /home/user/image/some_image.simg bash newscript.sh
当我运行脚本时,它会在调用shell后被卡住

singularity>

但是,我希望后续命令在调用的shell中运行。如何执行此操作?

您正在连接到shell脚本中的交互式命令shell,只需执行命令即可

singularity exec ...

如果要连接到shell脚本中的交互式命令shell,只需执行命令即可

singularity exec ...

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

#!/bin/sh

/home/user/miniconda/activate my_env
cd /app/app_folder/scripts
ls -ash
然后运行
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
#!/bin/sh

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

myscript.sh

中调用singularity shell后,此方法将在singularity shell中运行
newscript.sh
,因此基本上我必须将
shell
替换为
exec
,并将后续命令保存在另一个包含

#!/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
#!/bin/sh

/home/user/miniconda/activate my_env
cd /app/app_folder/scripts
ls -ash
#!/bin/sh

singularity exec -B /home/user/Desktop/ /home/user/image/some_image.simg bash newscript.sh
然后运行
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
#!/bin/sh

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

myscript.sh

中调用singularity shell后,此方法将在singularity shell中运行
newscript.sh
,这是正确的,但该链接确实很旧。当前版本的链接是:旧版本的文档可在Thank you@tsnowlanth获得。这是正确的,但该链接确实很旧。当前版本的链接为:和旧版本的文档可从Thank you@tsnowlan获得
#!/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
#!/bin/sh

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