2012-07-04 18 views
0

我正在创建一个应该在HPC(集群)上创建作业的脚本。我创建了获得4个变量的函数,并创建它们的字符串:如何连接到bash中的函数的字符串?

startJob(){ 
    if [ $per -lt 10 ]; then 
    folder=/storage/users/avityo/prog/0$1.$2$3 
    else 
    folder=/storage/users/avityo/prog/$1.$2$3 
    fi 
    echo $folder 
} 

在结果我从这个搞定了,还有用逗号分隔

/storage/users/avityo/prog/00,.583,bfd, 

我怎样才能删除这些逗号?

编辑:
从答案来看和评论我,我应该提到我如何调用该函数我已经意识到我不是调用正确的方法的功能。我正在使用这个:

let count=0 

for per in $(seq 70 -5 0); do 
    for seed in {580..583}; do 
     for c in {"fs","fd","bfs","bfd"}; do 
      let count=$count+1 
      startJob $per, $seed, $c, $count 
     done 
    done 
done 

在调用函数时删除逗号解决了这个问题。

+3

你尝试在源字符串删除它们? –

+2

请编辑您的问题,以显示您的函数的示例输入。祝你好运。 – shellter

+1

为了完整性,您不需要内循环中的大括号。 '用于f中的“fs”“fd”“bfs”“bfd”;做',甚至''fs ff bfs bfd;做'也会工作。 – chepner

回答

2

看起来你在呼唤你的函数是这样的:

startJob 0, 583, bfd, 4thUnusedArgument 

你不需要逗号;参数只能用空格分隔。试试这个:

startJob 0 583 bfd 4thUnusedArgument 
0

如果你不看编辑的逗号的来源,这样说来,你可以管它的sed。

echo $folder|sed 's/,//g' 

将输出

/storage/users/avityo/prog/00.583bfd