免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 8019 | 回复: 15

[数值计算] 新手求助--关于如何同时循环多个变量 [复制链接]

论坛徽章:
0
发表于 2015-04-12 17:54 |显示全部楼层
请问如何通知循环多个变量,如有三个变量var1、var2、var3,给这三个同时变量赋值,var1=1,var2=2,var3=3,这三个变量作为一组带入变量表中计算,下一次循环var1=4,var2=5,var3=6,再一起带入计算,以此类推。。请各位赐教

论坛徽章:
30
申猴
日期:2014-04-10 09:43:532015年亚洲杯纪念徽章
日期:2015-03-20 14:40:232015亚冠之阿尔纳斯尔
日期:2015-06-02 18:59:042015亚冠之阿尔希拉尔
日期:2015-06-30 15:22:572015亚冠之大阪钢巴
日期:2015-07-20 10:44:332015亚冠之阿尔纳斯尔
日期:2015-10-28 14:57:5215-16赛季CBA联赛之新疆
日期:2015-12-25 10:18:45黑曼巴
日期:2016-06-26 21:39:5315-16赛季CBA联赛之山西
日期:2016-07-25 21:54:2715-16赛季CBA联赛之北京
日期:2016-10-27 12:07:2315-16赛季CBA联赛之八一
日期:2017-07-07 16:39:0915-16赛季CBA联赛之吉林
日期:2017-09-04 12:14:43
发表于 2015-04-12 19:18 |显示全部楼层
  1. awk -v k=30 'BEGIN{for (i=1;i<=k;i+=3) print "var1="i,"var2="i+1,"var3="i+2}'
复制代码
回复 1# 被吃掉的文颜君 k的值自己改


   

论坛徽章:
9
射手座
日期:2014-07-29 13:05:07双子座
日期:2015-01-11 17:01:522015年亚洲杯之朝鲜
日期:2015-02-01 16:14:282015亚冠之阿尔艾因
日期:2015-06-04 17:54:40数据库技术版块每日发帖之星
日期:2015-08-02 06:20:00数据库技术版块每日发帖之星
日期:2015-10-28 06:20:00数据库技术版块每日发帖之星
日期:2015-11-26 06:20:0015-16赛季CBA联赛之天津
日期:2016-06-20 17:09:2015-16赛季CBA联赛之青岛
日期:2017-02-26 15:54:19
发表于 2015-04-12 19:46 |显示全部楼层
l楼上awk的精彩
  1. #!/bin/bash
  2. times=4
  3. for((i=0;i<$times;i++))
  4.    do
  5.     let var1=1+i*3
  6.     let var2=2+i*3
  7.     let var3=3+i*3
  8.     let sum=$var1+$var2+$var3
  9.     echo $sum
  10.    done
复制代码

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
发表于 2015-04-12 20:05 |显示全部楼层
awk
  1. awk -vf=10 'BEGIN{for(;i++<f;)for(j=0;j++<3;){print "var"j"="++k}}'
复制代码
shell
  1. #!/bin/bash
  2. for((;i++<10;));do
  3.         for((j=0;j++<3;));do
  4.                 eval var_$j=$((++k))
  5.                 echo "var_$j="$k
  6.         done
  7. done
复制代码

论坛徽章:
0
发表于 2015-04-12 21:08 |显示全部楼层
不好意思,可能我的提问方式有些问题,这三个变量的值不是123,两个变量的值我要自己赋值,一个是时间,另一个是天顶角,一个时间和这个时间所对应的天顶角作为一组代入模式计算,两个量分别有23个值,不知可不可以实现?请各位大神赐教
QQ截图20150412210609.jpg

论坛徽章:
28
2015年迎新春徽章
日期:2015-03-04 10:16:53午马
日期:2015-03-20 17:11:07亥猪
日期:2015-03-20 17:11:23戌狗
日期:2015-03-20 17:11:33酉鸡
日期:2015-03-20 17:11:47申猴
日期:2015-03-20 17:11:58未羊
日期:2015-03-20 17:12:10子鼠
日期:2015-03-20 17:12:23丑牛
日期:2015-03-20 17:12:40卯兔
日期:2015-03-20 17:12:51辰龙
日期:2015-03-20 17:13:00巳蛇
日期:2015-03-20 17:13:12
发表于 2015-04-12 21:37 |显示全部楼层
  1. var=(A a B b C c D d E e F f G g H h I i J j K k L l M m N n O o P p Q q R r S s T t U u V v W w)
  2. for((;i++<${#var[@]}/2;));do
  3.         var_1=${var[j++]}
  4.         var_2=${var[j++]}
  5.         echo $var_1
  6.         echo $var_2
  7.         echo "-------"
  8. done
复制代码
是这意思不?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
发表于 2015-04-12 21:40 |显示全部楼层
回复 5# 被吃掉的文颜君

for var in 29.66_0.126 19.39_0.167
do
  echo $var;
  sza=$(echo $var| awk -F_ '$0=$1')
  time=$(echo $var| awk  -F_ '$0=$2')
  echo "sza=$sza, time=$time"
done

29.66_0.126
sza=29.66, time=0.126
19.39_0.167
sza=19.39, time=0.167

   

论坛徽章:
0
发表于 2015-04-12 22:23
回复 6# 我是一隻羊
非常感谢你的耐心的解答,我刚接触Linux,由于毕业论文比较急,还没来得及系统学Linux,只能边做边学,所以我不太懂为什么上面用i循环,下面用“j++”


   

论坛徽章:
0
发表于 2015-04-12 22:25
回复 7# jason680
非常感谢你的回答,我想问运行时,出现了“2008_sza.sh: line 13: ${echo $var| awk -F_'$0=$1'}: bad substitution”这种错误,是什么原因。


   

论坛徽章:
0
发表于 2015-04-12 22:26
回复 3# stupid_lee
谢谢你的解答,学到了很多

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP