shell编程(二)case/函数/和正则表达式
一、case多路选择(通过 $3 选择运算方式)
#!/bin/bash
ret=0
case $3 in
+) # $3 是 + 执行加法运算
ret=`expr $1 + $2`
;; # 这个就是break
-)
ret=`expr $1 - $2`
;;
x)
ret=`expr $1 \* $2`
;;
/)
ret=`expr $1 / $2`
;;
%)
ret=`expr $1 % $2`
;;
*)
echo wrong input
exit
esac
echo $1 $3 $2 '=' $ret
二、函数
shell 编程里面也有函数,但是没有主函数(main),其实 shell 这个脚本就是主函数,这样一看就可以在函数内部定义函数,但是函数内部定义的函数的作用域只在当前函数。建议还是少点这种骚操作。
实例代码
#!/bin/bash
add() # 标准函数开头 函数名+() 没有参数列表
{
if [ $1 -gt $2 ]
then
return 0;
else
return 1;
fi
}
add 12 25 # 函数调用,12 对应函数里的 $1, 25 对应函数里的 $2 .....
echo 'func add return' $? # 获取函数调用后的返回值
三、正则表达式
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。(简单来说就是方便字符串操作)
常用的元字符(特殊符号)