셸 호출 후 후속 명령을 실행하는 방법

셸 호출 후 후속 명령을 실행하는 방법

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해야 합니다.execnewscript.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

관련 정보