BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


如何用bc对小数做循环

首页 » 论坛 » Shell »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
fortuneteller
圣骑士




UID:611802
注册:2007-9-3
最后登录: 2008-09-26
帖子:120
精华:0

可用积分:126 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2008-6-26 11:23 
在论坛上看了点bc的帖子,简单的bc操作明白了,但是实际用bc经常是为了复杂的小数操作(简单的计算器就可做了),例如循环。
那么如何使bc做个小数循环呢,如对i =0.1-1.,循环后我要在循环体内部进行其他操作不是只输出i 值
1.我试图用for和管道不行应该是因为bash下for不认小数吧 for (( i=0.1;i<=1;i+=0 1)) | bc
2.如何在bash脚本中用一段bc命令呢?如果写在脚本里,用#!/usr/bin/bc的话整个脚本就是bc脚本了和shell无关了,但我主要还是用bash命令?
3.用bc对小数做循环后还需要对该小数值进行一些其他操作并不是直接打印i值,
所以awk ‘BEGIN{for(i=0.1;i<=1.0;i+=0.1)printf "%.1f\n",i}'似乎不大适用



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
ly5066113   帅哥 (Tim)
精灵使


CU奥运火炬传递手2008
UID:465018
注册:2006-9-13
最后登录: 2008-10-07
帖子:3201
精华:0

可用积分:961 (稍有积蓄)
信誉积分:120
专家积分:267 (本版:216)
空间积分:0
推广积分:50

来自:长春
状态:...在线...

[个人空间] [短信] [博客]


2楼 发表于 2008-6-26 11:25 


QUOTE:
原帖由 fortuneteller 于 2008-6-26 11:23 发表
在论坛上看了点bc的帖子,简单的bc操作明白了,但是实际用bc经常是为了复杂的小数操作(简单的计算器就可做了),例如循环。
那么如何使bc做个小数循环呢,如对i =0.1-1.,循环后我要在循环体内部进行其他操 ...

你要做什么?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
walkerxk
大天使
水王归来倒计时



UID:351339
注册:2005-12-18
最后登录: 2008-10-06
帖子:2334
精华:0

可用积分:1867 (家境小康)
信誉积分:105
专家积分:15 (本版:0)
空间积分:0
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


3楼 发表于 2008-6-26 11:33 
为什么要用小数?你可以for (( i=1;i<=10;i+=1))
a=$(echo $i/10|bc)



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

开源资源:
软件下载http://software.lupaworld.com
开源镜像http://mirror.lupaworld.com
手册中心http://man.lupaworld.com
欢迎大家访问,并提出建议和意见。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
fortuneteller
圣骑士




UID:611802
注册:2007-9-3
最后登录: 2008-09-26
帖子:120
精华:0

可用积分:126 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2008-6-26 14:01 


QUOTE:
你要做什么?

我要用bash做外部操作脚本,把小数作为参数循环跑动让其他脚本程序运算。



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
版主 waker   帅哥 (孩儿他爹㊞)
广告杀手-法王



UID:17255
注册:2002-8-26
最后登录: 2008-10-07
帖子:18975
精华:2

可用积分:12101 (大富大贵)
信誉积分:375
专家积分:545 (本版:153)
空间积分:0
推广积分:1

来自:中国南京
状态:...在线...

[个人空间] [短信] [博客]


5楼 发表于 2008-6-26 14:05 


QUOTE:
原帖由 fortuneteller 于 2008-6-26 14:01 发表


我要用bash做外部操作脚本,把小数作为参数循环跑动让其他脚本程序运算。

你要做什么?



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

=GNU/linux=
GNU {bash 2.05b, grep 2.5, Awk 3.1.3, sed 4.0.8}

导师说:站起来吧
众人说:那么辛苦那么艰苦到底值不值?

设计师说:富起来吧
众人说:拼啦

积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
walkerxk
大天使
水王归来倒计时



UID:351339
注册:2005-12-18
最后登录: 2008-10-06
帖子:2334
精华:0

可用积分:1867 (家境小康)
信誉积分:105
专家积分:15 (本版:0)
空间积分:0
推广积分:0

状态:...保密...

[个人空间] [短信] [博客]


6楼 发表于 2008-6-26 14:10 


QUOTE:
原帖由 fortuneteller 于 2008-6-26 14:01 发表


我要用bash做外部操作脚本,把小数作为参数循环跑动让其他脚本程序运算。

为什么要用小数?你可以for (( i=1;i<=10;i+=1))
a=$(echo $i/10|bc)



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

开源资源:
软件下载http://software.lupaworld.com
开源镜像http://mirror.lupaworld.com
手册中心http://man.lupaworld.com
欢迎大家访问,并提出建议和意见。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
blackold   帅哥 (黑哥)
大天使



UID:631768
注册:2007-10-22
最后登录: 2008-10-07
帖子:1982
精华:0

可用积分:1109 (家境小康)
信誉积分:0
专家积分:71 (本版:71)
空间积分:0
推广积分:0

状态:...在线...

[个人空间] [短信] [博客]


7楼 发表于 2008-6-26 14:47 
百闻不如一见,举个例子可能更好地说明你的意图。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

LIVE FREE OR DIE!     K.I.S.S.


积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
fortuneteller
圣骑士




UID:611802
注册:2007-9-3
最后登录: 2008-09-26
帖子:120
精华:0

可用积分:126 (白手起家)
信誉积分:0
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


8楼 发表于 2008-6-26 19:09 


QUOTE:
原帖由 blackold 于 2008-6-26 14:47 发表
百闻不如一见,举个例子可能更好地说明你的意图。

比如在脚本aout中有一些变量参数,例如里面有PAR,每次对PAR取不同值运算结果不同。
我现在想写一bash脚本对aout的中的参数PAR进行循环设置,然后对每个不同的PAR值都运行aout计算一次。当然对aout中的PAR替换用sed就行了
但是对PAR赋值让它循环跑动当整数时很好办,但是小数时不太会处理。



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
ly5066113   帅哥 (Tim)
精灵使


CU奥运火炬传递手2008
UID:465018
注册:2006-9-13
最后登录: 2008-10-07
帖子:3201
精华:0

可用积分:961 (稍有积蓄)
信誉积分:120
专家积分:267 (本版:216)
空间积分:0
推广积分:50

来自:长春
状态:...在线...

[个人空间] [短信] [博客]


9楼 发表于 2008-6-26 19:44 


QUOTE:
原帖由 fortuneteller 于 2008-6-26 19:09 发表

比如在脚本aout中有一些变量参数,例如里面有PAR,每次对PAR取不同值运算结果不同。
我现在想写一bash脚本对aout的中的参数PAR进行循环设置,然后对每个不同的PAR值都运行aout计算一次。当然对aout中的PAR替 ...

楼主学文的吧,总能写这么多!

walkerxk 都给你方法了:

for (( i=1;i<=10;i++))
do
    PAR=$(echo "scale=1;$i/10" | bc)
    aout $PAR
done

awk 方法:

awk 'BEGIN{for(i=0.1;i<=1.0;i+=0.1) printf "aout %.1f\n" ,i}' | sh



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

记住该记住的,忘记该忘记的。改变能改变的,接受不能改变的。
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?

首页 » 论坛 » Shell »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.138138 second(s), 4 queries , Gzip enabled