当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 11 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : What's wrong with this shell script program?
帖子发表于 : 2010-11-05 15:56 

注册: 2010-11-05 15:48
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
Hello everyone. I'm a new user of Linux. I tried to write my first shell script program on my computer. But it couldn't work rightly.

The code is

#!/bin/bash
# Program:
# Try do calculate 1+2+...+$(your_input)
# History:
# 2010/11/05 windvalley First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input a number, I'll count for 1+2+...+your_input:" nu

s=0
for (( i=1 ; i <= $nu ; i=i+1 ))
do
s=$( ($s+$i) )
done
echo "The result is" $s



When I ran it, it would show: line 14: 0+1: command not found

..........................


I don't know how to fix it.

Thanks in advance!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 16:01 

注册: 2010-11-05 15:48
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
Sorry. It seems I posted it in a wrong place. :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 16:01 
头像

注册: 2006-10-25 18:08
帖子: 1582
送出感谢: 0 次
接收感谢: 0 次
shell is not C
you can not use i=i+1 in shell


_________________
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。


页首
 用户资料  
 
4 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 16:03 

注册: 2009-12-01 20:02
帖子: 208
送出感谢: 0 次
接收感谢: 0 次
( ($s+$i) )
my english is poor. :em03


页首
 用户资料  
 
5 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 16:06 
头像

注册: 2006-03-23 14:48
帖子: 328
送出感谢: 2
接收感谢: 2
put $(($s+$i)) instead of $( ($s+$i) )


页首
 用户资料  
 
6 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 16:10 
头像

注册: 2006-10-25 18:08
帖子: 1582
送出感谢: 0 次
接收感谢: 0 次
shell style:
代码:
#!/bin/bash
#sh012.sh
read -p "Please input a number, I'll count for 1+2+...+your_input:" nu
echo `seq $nu`|tr -s ' ' '+'|bc


./sh012.sh
Please input a number, I'll count for 1+2+...+your_input:10
55


_________________
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 23:27 
头像

注册: 2008-10-11 22:49
帖子: 242
地址: null
送出感谢: 0 次
接收感谢: 1
首先给这个脚本加上x权限
然后在终端中进入到脚本所在的目录下,然后执行./scriptname


_________________
上帝也是单亲家长


页首
 用户资料  
 
8 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-05 23:50 
头像

注册: 2008-09-18 13:11
帖子: 2645
送出感谢: 1
接收感谢: 423
代码:
#!/bin/bash
# Program:
# Try do calculate 1+2+...+$(your_input)
# History:
# 2010/11/05 windvalley First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input a number, I'll count for 1+2+...+your_input:" nu

s=0
i=0
while [ $i -le $nu ]
do
   s=$(($s+$i))
   i=$(($i+1))
done
echo "The result is" $s


页首
 用户资料  
 
9 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-06 11:03 

注册: 2010-11-05 15:48
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
Thanks for all of your help. After I changed $( ($s+$i) ) to $(($s+$i)), the problem finally can work.


页首
 用户资料  
 
10 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-06 11:16 

注册: 2010-11-05 15:48
帖子: 4
送出感谢: 0 次
接收感谢: 0 次
Hi, another shell script program. It seems so hard to me.

#!/bin/bash
# Program:
# User inputs his salary. Program shows his personal income tax and his after-tax income.
# History:
# 2010/11/05 windvalley First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input your salary: " salary #Prompt user to input his salary
if [ "$salary" < "0" ]; then
echo "Invalid input."
exit 1
elif [ "$salary" <= "2000" ]; then
tax=0
elif [ "$salary" <= "2500" ]; then
tax=$((($salary-2000)*0.05))
elif [ "$salary" <= "4000" ]; then
tax=$((($salary-2500)*0.1+25))
elif [" $salary" <= "7000" ]; then
tax=$((($salary-4000)*0.15+175))
elif [ "$salary" <= "22000" ]; then
tax=$((($salary-7000)*0.2+625))
elif [ "$salary" <= "42000" ]; then
tax=$((($salary-22000)*0.25+3625))
else
echo "Oh, you're quite rich."
exit 2
fi

echo "Your personal income tax is: " $tax ", and your after-tax income is: " $(($salary-$tax))
exit 0

Besides, could you introduce some book about shell script programming which is useful to beginners like me?


页首
 用户资料  
 
11 楼 
 文章标题 : Re: What's wrong with this shell script program?
帖子发表于 : 2010-11-06 13:53 
头像

注册: 2006-10-25 18:08
帖子: 1582
送出感谢: 0 次
接收感谢: 0 次
shell是极端灵活的,怎么写怎么有,不见得就得if。。。
看这个,当然,你得给个整数
代码:
#!/bin/bash
a=`echo {1..2000}|tr -s ' ' '|'`
b=`echo {2001..2500}|tr -s ' ' '|'`
c=`echo {2501..4000}|tr -s ' ' '|'`
d=`echo {4001..7000}|tr -s ' ' '|'`
e=`echo {7000..22000}|tr -s ' ' '|'`
f=`echo {22000..42000}|tr -s ' ' '|'`
# echo $a
read -p "Please input your salary: " s #Prompt user to input his salary
(($s<=0)) && echo "hi , man , its funny" && exit
(($s>42000)) && echo "hi , RICH ASS !" && exit
eval "
case $s in
$a) tax=0;;
$b) tax=`echo "($s-2000)*0.05"|bc`;;
$c) tax=`echo "($s-2500)*0.1+25"|bc`;;
$d) tax=`echo "($s-4000)*0.15+175"|bc`;;
$e) tax=`echo "($s-7000)*0.2+625"|bc`;;
$f) tax=`echo "($s-22000)*0.25+3625"|bc`;;
esac
"
echo "Your personal income tax is: "$tax
echo "And your after-tax income is: "`echo "$s-$tax"|bc`


_________________
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 11 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译