Sev*_*ess 10 unix bash qsub pbs
有没有办法在提交作业之前直接将参数传递给.pbs脚本?我需要遍历由不同数字指示的文件列表,并应用脚本来分析每个文件.
我能想出的最好成绩如下:
#!/bin/sh 
for ((i= 1; i<= 10; i++))
do
        export FILENUM=$i
        qsub pass_test.pbs
done
其中pass_test.pbs是以下脚本:
#!/bin/sh
#PBS -V
#PBS -S /bin/sh
#PBS -N pass_test
#PBS -l nodes=1:ppn=1,walltime=00:02:00
#PBS -M XXXXXX@XXX.edu
cd /scratch/XXXXXX/pass_test
./run_test $FILENUM
但这感觉有点不稳定.特别是,我想避免创建一个环境变量来处理这个问题.
该qsub实用程序可以从标准输入中读取脚本,因此通过使用here文档,您可以动态地动态创建脚本:
#!/bin/sh
for i in `seq 1 10`
do
    cat <<EOS | qsub -
#!/bin/sh
#PBS -V
#PBS -S /bin/sh
#PBS -N pass_test
#PBS -l nodes=1:ppn=1,walltime=00:02:00
#PBS -M XXXXXX@XXX.edu
cd /scratch/XXXXXX/pass_test
./run_test $i
EOS
done
就个人而言,我会使用更紧凑的版本:
#!/bin/sh
for i in `seq 1 10`
do
    cat <<EOS | qsub -V -S /bin/sh -N pass_test -l nodes=1:ppn=1,walltime=00:02:00 -M XXXXXX@XXX.edu -
cd /scratch/XXXXXX/pass_test
./run_test $i
EOS
done