2012-07-04 17 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