2013-12-09 95 views
1

我不熟悉bash,我遇到了一些问题。 我想将程序的第一个参数更改为1 4 8 16,对于其中的每个参数,我希望它将第二个参数更改为100和500,然后每次运行程序25次。在阵列中迭代阵列

这是我尝试使用Google中的脚本编写脚本。

任何人都知道我该怎么做?

iarray=(1 4 8 16) 
jarray=(100 500) 

for i in "${iarray[@]}" 
    do 
    for j in "${jarray[@]}" 
    do 
     echo Threads: $i Matrix Size: $j 

     for k in {1..25} 
     do 
      ./omp_task3fix.o $i $j 0 
     done 

     echo 
    done 
done 
+1

你的jarray初始化在'='周围仍然有空格。祝你好运。 – shellter

回答

3

数组是$IFS -delimited,而不是逗号分隔。赋值给变量的等号周围不能有空格。

iarray=(1 4 8 16) 
jarray=(100 500) 
+0

看起来我很接近,但是我在Matrix Size: 之后得到了空白区域请参阅上面编辑的代码。 –

+0

请仔细阅读答案。 –

+2

@JamesHaynes,bash对空白非常敏感 - 你**不能在作业中在'='周围放置空格。如果你写'var = 42',bash将尝试用2个参数“=”和“42”来执行命令“var”。 –