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