2009-01-28 182 views
1

我写了一个程序,它为2个变量生成参数索引。说,a和b的步骤5.这样我必须做23个变量。所以我不想编写23个for循环来运行,我怎样才能把它变成一个单一的for循环,这对所有23个变量都是通用的。我希望可以用数组完成,但我不知道如何通过程序来实现它。 你能帮我吗?linux/shell脚本

计划:

int z, p 
float a, b 
float a0, an, s, a1, b0, bn, b1 
str var 
s=5; a0=1; an=10; b0=8; bn=13  // s= steps, a0, b0= initial value, an,bn=final value 
z=0 

a1=(an-a0)/s 
b1=(bn-b0)/s 

for (a=(a1+a0);a<=an;a=a+a1) 
for (b=(b1+b0);b<=bn;b=b+b1) 
echo {z} {a} {b} -format "%25s" >> /home/genesis/genesis-2.3/genesis/Scripts/kinetikit/dhanu19.txt 
z=z+1 
end 
end 

output : dhanu19.txt 
         0      2.8      9 
         1      2.8      10 
         2      2.8      11 
         3      2.8      12 
         4      2.8      13 
         5      4.6      9 
         6      4.6      10 
         7      4.6      11 
         8      4.6      12 
         9      4.6      13 
         10      6.4      9 
         11      6.4      10 
         12      6.4      11 
         13      6.4      12 
         14      6.4      13 
         15      8.2      9 
         16      8.2      10 
         17      8.2      11 
         18      8.2      12 
         19      8.2      13 
         20      10      9 
         21      10      10 
         22      10      11 
         23      10      12 
         24      10      13 
+0

听起来像作业 – 2009-01-28 10:06:51

回答

0

壳牌哪些你指的是?声明数组在zsh,bash之间有一些语法上的区别...

3

您是否考虑过编写脚本或程序来为您编写脚本?生成shell脚本,然后运行它们有时可以成为解决问题的强大解决方案。

0

我们假设你编写了23 for循环。 如果每个循环有5个步骤,您将以5^23参数结束!假设每个循环输出1个字节,您仍然需要存储10^16个字节或万亿兆字节的内容。 我认为你应该重新考虑你的问题,或重新制定你的问题

编辑: 这不是一个论坛(和aven在论坛中,你可以编辑你的文章)。 请编辑您的问题,而不是发布新的答案,我认为这很有趣