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
첫 번째 명령(3행)은 셸을 호출하고 후속 명령이 호출 셸에서 실행되기를 원합니다.
어떻게 하면 제대로 작동하게 할 수 있나요?
답변1
한눈에https://singularity.lbl.gov/archive/docs/v2-3/docs-shell원하는 것 같습니다(테스트되지 않음).
singularity shell -B /home/user/Desktop/ /home/user/image/some_image.simg -c '
/home/user/miniconda/activate my_env
cd /app/app_folder/scripts
ls -ash
'
-c 명령에 개행 문자를 사용하지 못할 수도 있습니다. 이 경우 세미콜론을 사용해 보십시오.
답변2
따라서 기본적으로 다음 명령을 포함하는 다른 실행 가능한 bash 스크립트에서 후속 명령을 바꾸고 저장 shell
해야 합니다.exec
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
특이성 셸을 호출한 후 메서드는 특이성 셸에서 실행됩니다.myscript.sh