LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: Kingo

谁可以帮忙写下面这个shell程序?谢谢先!!

[复制链接]
 楼主| 发表于 2003-11-20 18:38:57 | 显示全部楼层
这个,如果可以,你帮忙一下吧。
我是不懂的,呵呵……
发表于 2003-11-20 19:17:53 | 显示全部楼层
原来比较数字要用le gt

给个例子,余下的叫她亲自做。。。

#!/usr/local/bin/bash
a=120000
if [[ $a -gt 100000 && $a -lt 200000 ]] ;then
echo $((1000+((a-100000))*75/1000));exit 0
fi

 楼主| 发表于 2003-11-20 19:27:44 | 显示全部楼层
非常感谢!!
我就是因为不懂shell,所以特别想知道像这类问题用shell应该如何处理.呵呵……
 楼主| 发表于 2003-11-20 19:38:33 | 显示全部楼层
不过,只能用整数进行计算吗?
小数应该怎样处理?
发表于 2003-11-20 19:59:20 | 显示全部楼层
不懂。不是显示小数。
FREE# echo $(($a/2))
1
FREE# echo $((-$a/2))
-1
FREE# echo $a
3
 楼主| 发表于 2003-11-20 20:27:11 | 显示全部楼层
我已经写好了,程序也已经发给她了,呵呵。现在写出来,大家帮忙检查一下吧,呵呵:
  1. #!/bin/bash
  2. func()
  3. {
  4.   echo "That's all. Thank you!"
  5.   echo "$m $n $p"
  6.   echo "$1 $2 $3"
  7. }
  8.   m="Today"
  9.   n="is"
  10.   p=`date`
  11. echo -n "Please input the bonus: "
  12. read bonus
  13. if [ -z "$bonus" ]; then
  14.         echo "You dont input anything!"
  15. else
  16.         if [ $bonus -le 100000 ]; then
  17.                         outcome=$((bonus/10))
  18.         elif [ $bonus -le 200000 ]; then
  19.                 outcome=$((10000+(bonus-100000)*75/1000))
  20.         elif [ $bonus -le 400000 ]; then
  21.                 outcome=$((10000+7500+(bonus-200000)*5/100))
  22.         elif [ $bonus -le 600000 ]; then
  23.                 outcome=$((10000+7500+10000+(bonus-400000)*3/100))
  24.         elif [ $bonus -le 1000000 ]; then
  25.                 outcome=$((10000+7500+10000+6000+(bonus-600000)*15/1000))
  26.         else
  27.                 outcome=$((10000+7500+10000+6000+6000+(bonus-1000000)/100))
  28.         fi
  29. echo "The outcome is: $outcome"
  30. fi
  31. func
复制代码
 楼主| 发表于 2003-11-20 20:32:07 | 显示全部楼层
在此谢谢home的帮助!
上面那个程序算是我的第一个shell程序了,感觉很爽——虽然它很简单!!
哈哈,也算是稍稍入了点shell编程的门吧~~
现在的心情实在是难以言语,怎一个“爽”字了得,哈哈~~~

===================================
各位高手千万不要笑小弟,暂且让小弟自恋一次,呵呵……
发表于 2003-11-20 20:56:47 | 显示全部楼层
outcome=$((10000+(bonus-100000)*75/1000))

这里应该是$((1000+((bonus-100000))*75/1000))
你少了一对括号了。下面的也是。。
 楼主| 发表于 2003-11-20 21:19:31 | 显示全部楼层
好像这样也可以计算。我再看看。谢谢!!
 楼主| 发表于 2003-11-20 21:20:56 | 显示全部楼层
计算结果一样。原因??
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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