码迷,mamicode.com
首页 > 其他好文 > 详细

关于function

时间:2015-01-10 23:31:48      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

场景:让用户输入一个数字,程序由1+2....一直累加到用户输入的数字为止

#!/bin/bash
PATH=$PATH:~/script
export PATH

#chech whether the input is num
function is_num(){

#判断用户输入的是否是数字,是数字则返回1,否则返回0(不能输入0)
grep_format=$(echo $1 |egrep ‘^[1-9]+[0-9]?$‘ )
if [ "$grep_format" == "" ];then
  return 0
else
  return 1
fi
}

read -p "please input an integer:" max

is_num_re=$(is_num $max)
#echo $?
#if [ "$is_num_re" == "0" ];then

#用户的输入不是数字时,直接退出

if [ $? -eq 0 ];then
echo "It‘s not an integer"
exit 1
fi

sum=0

#累加
for((i=1;i<=$max;i=i+1))
do
sum=$(($sum+$i))
done

echo "sum: " $sum

exit 0

主要有几个注意点:

1.function的返回值用return n;的形式,如果没有return,则最后一个语句的执行结果即是返回值。(这一点上,Ruby和Linux是一样的 )

2.获取function的返回值,用$?(在Linux里面,$?是用来获取上一个命令的执行结果返回码,可以把function理解为一个命令。在本例中,is_num_re=$(is_num $max),is_num_re为空)

3.注意字符串比较符==与前后的比较对象中间有空格。

 

关于function

标签:

原文地址:http://www.cnblogs.com/ghsea/p/4215785.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!