2013-07-18 28 views
0

我正在提交一组采用一系列参数值的qsub作业。我运行以下循环提交这些多个作业。我通过-v将特定参数值传递给qsub。我想作业名也成为这些参数的函数:qsub将参数传递给-N(名称)选项

#!/bin/bash  
for a in 1 2 
do 
    for b in 1 2 
    do 
    echo "a is $a, b is $b" 
     qsub -v a=$a,b=$b -N run_$a_$b run_file.sh 
    done 
done 

凡run_file.sh包含#PBS命令来运行程序。 当我向我看到下面的输出,显示了循环中的服务器工作正常:

a is 1, b is 2 

但作业名称出现只与最后一个参数

run_$b (i.e. run_2 for $b=2) 

而不是作为

run_$a_$b 

如何获取作业名称以包含两个参数?我试过缩短文件名以确认它不是长度问题。我希望名称能够同时显示两个参数,以跟踪哪些文件仍在运行,而无需检查输出文件。谢谢你的帮助。

回答

0

不能真正运行此脚本,但尝试: 的qsub -va = $ A,B = $ B -N运行_ $ {A} _ $ {B} run_file.sh

希望这是你正在寻找

+0

是的,这是有效的 - 两个参数现在出现了(所以大括号,但没关系)。谢谢! – user1486856

0

在run_ $ a_ $ b bash考虑$ a_作为一个变量,显然你没有a_defined 这样的事情应该工作? run _ $ {a} _ $ b