LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1966|回复: 12

请问如何编写一个1一直加到100的 shell程序,请指教?

[复制链接]
发表于 2008-12-22 15:03:10 | 显示全部楼层 |阅读模式
给一个例子
,我编写的时候出错
发表于 2008-12-22 15:08:28 | 显示全部楼层
sum=0;for ((i=0;i<=${1:-100};i++));do sum=$(($sum+$i));done;echo $sum
回复 支持 反对

使用道具 举报

发表于 2008-12-22 16:04:29 | 显示全部楼层
验证LS的脚本计算正确,高人啊!
回复 支持 反对

使用道具 举报

发表于 2008-12-22 17:23:34 | 显示全部楼层
我也写2个:
bash:
i=0 sum=0;while ((i<=100)); do ((sum=sum+i++)); done;echo $sum
AWK:
awk 'BEGIN{while (i<=100){sum+=i++;}print sum;}'
回复 支持 反对

使用道具 举报

发表于 2008-12-22 21:10:23 | 显示全部楼层
  1. sum=0
  2. for i in {1..100}; do
  3.     ((sum += i))
  4. done
复制代码
干什么不直接:
  1. ((sum = 100 * (100+1) / 2))
复制代码
有人会认为我在搞笑吗?
回复 支持 反对

使用道具 举报

发表于 2008-12-22 22:38:50 | 显示全部楼层
Jockey 兄, 直接 echo 5050 更直接一些
回复 支持 反对

使用道具 举报

发表于 2008-12-22 22:48:28 | 显示全部楼层
我再来提供一个纯粹娱乐性质的

  1. echo $(( $(seq -s+ 100) ))
复制代码


手头没机器, 有待验证
回复 支持 反对

使用道具 举报

发表于 2008-12-23 01:54:59 | 显示全部楼层
  1. seq -s+ 100 | bc
复制代码

如果有bc的话
回复 支持 反对

使用道具 举报

发表于 2008-12-23 10:37:51 | 显示全部楼层
Post by huan;1928204
  1. seq -s+ 100 | bc
复制代码
如果有bc的话
如果有seq的话...
{Free,Open}BSD没有;
Darwin没有;
NetBSD有;
Solaris有。
回复 支持 反对

使用道具 举报

发表于 2008-12-23 11:23:05 | 显示全部楼层
换成说是“如果装了bc的话”似乎更准确吧
Jockey认为linux是有bc还是没有bc呢

各distro默认的套件不尽相同
netinstall, isoinstall等不同安装方式所装上来的套件也不相同

我跑题了, 我似乎也应该和remote_fish一样说明仅供娱乐 :)
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表