shell中的函数定义及控制语句

1.shell中的函数定义格式为:

function name(){

#函数体

}

函数的定义必须遵循先定义在使用的原则,如定义函数print

#!/bin/sh
function print()
{
if [ $# -lt 1 ]
then  print “no parameter”;
return  1;
else 
ehco “$1,$2”;
return 0;
fi
}
ehco “print function is being invoked”
print

上面的return 语句是函数的返回值,可以用0表示函数运行成功,1表示运行失败,如果没有return 语句,shell函数最后命令产生的值作为返回值。

除了在脚本中可以定义使用函数外,还可以将函数写成一个文件,然后载入函数即可调用。

如定义下面的函数

#!/bin/sh
#filename:guessnum.sh
function guess()
{
num1=$RANDOM;
num=$num1%100;
echo “please guess a number”
while true
do
printf “input a number\n”
read inpu
if (($inpu == $num))
then
printf “right\n”;
break;
elseif (($inpu < $num))
then 
printf “too low\n”;
else
printf “too high\n”;
fi 
done
}

把这个函数保存为guessnum.sh文件,然后定位文件,方法是:  <.><空格><文件名>

即 $.  guessnum.sh

检查载入的状态: set|grep  guessnum

执行函数:guessnum

删除函数:unset guessnum

删除后,重新载入,guessnum函数可以继续使用。

 下面是case语句的介绍,shell中的case语句基本格式为

case $变量名 in

匹配模式1)

;;

匹配模式2)

;;

匹配模式3)

;;

esac

#!/bin/bash
printf “input a character\n”;
read  ch;
case $ch in 
[a-z])
echo “lower”;
;;
[A-Z])
echo “upper”;
;;
[^A-Za-z])
ehco “not a character”;
;;
esac

上面的代码在ubuntu环境运行时,可能会出现大小写不分的情况,即大写字母或者小写字母都会出 “lower”的结果,解决方法是运行LANG=C的命令,在运行程序。LANG=C中的C代表英文ASCII环境。

下面是for语句的介绍,for语句的基本格式为:

(1)for ((赋值;条件;运算语句))

do

#statements

done

计算n的阶乘方法为

#!/bin/sh
read  –p  “input a number” num
s=1;
for ((i=1;i<=$num;i++))
s=$s*$i;
echo ${{s}}

上面的代码在ubuntu环境执行时,可能会出现bad for loop 错误,原因是ubuntu为了加快开机速度,将bash替换成了 dash,因为dash体积小,运行更快。解决错误的办法是在终端中输入命令sudo dpkg-reconfigure dash,然后在选项中选No就可以了。

(2)for … in…

 do

#statement

done

 产生5个随机数,可以这样

for k in 1 2 3 4 5

do

echo $RANDOM

done



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值