我有以下shell脚本。在通过bsub提交时包含bash脚本参数
#!/bin/bash --login
#BSUB -q q_ab_mpc_work
#BSUB -J psipred
#BSUB -W 01:00
#BSUB -n 64
#BSUB -o psipred.out
#BSUB -e psipred.err
module load compiler/gnu-4.8.0
module load R/3.0.1
export OMP_NUM_THREADS=4
code=${HOME}/Phd/script_dev/rfpipeline.sh
MYPATH=$HOME/Phd/script_dev/
cd ${MYPATH}
${code} myfile.txt
中,我可以使用BSUB提交程序集群:
bsub < myprogram.sh
但是我改变的最后一行在我的程序:
${code} $1
,我使用命令行参数指定文件,我怎样才能把这个传递给bsub?
我曾尝试:
bsub < myprogram.sh myfile.text
然而BSUB不会接受myfile.text
作为一个bash参数。
我也曾尝试
bsub <<< myprogram.sh myfile.text
./myprogram.sh myfile.text | bsub
bsub "sh ./myprogram.sh myfile.text"
什么,我需要做什么?
我想你只需要:'BSUB myprogram.sh myfile.text'。 – meuh
@meuh - 技术上这是运行,但工作失败。如果我很快并使用'bjobs',我可以看到它已经提交,然后看到它已经运行,但是然后立即得到“没有找到未完成的工作”。我期望'mkdir test'的输出结果显示没有新文件夹,称为'test',所以我认为它没有工作。 – brucezepplin
你应该有一个stderr日志文件。尝试在脚本中添加'set -x'来跟踪哪些命令也被执行。 – meuh