标签:shell
#!/bin/bash
#斐波那契数列
#不要用递归,深度大于30就老火了。
function fun_test()
{
if [ $1 -lt 3 ];then
echo 1
return
fi
sum1=1
sum2=1
let count=$1-2
sum=0
while [ $count -gt 0 ];do
let count--
let sum=sum1+sum2
let sum1=sum2
let sum2=sum
done
echo $sum
}
val=$(fun_test $1)
echo $val
#!/bin/bash
求输入的一串数字中的最大数,最小数以及平均数(保留2位小数)
Maxsum=$1
Minsum=$1
sum=$1
count=$#
shift 1
while [ $# -gt 0 ];do
if [ $Maxsum -lt $1 ];then
let Maxsum=$1
fi
if [ $Minsum -gt $1 ];then
let Minsum=$1
fi
let sum+=$1
shift
done
echo "Max::" "$Maxsum"
echo "Min::" "$Minsum"
val=`echo "scale=2;$sum/$count" | bc`
echo "pingjun::" "$val"
#!/bin/bash
#递归当前目录下面所有目录文件。
function fun_test()
{
ls $1 | while read line
do
DIR="$1/$line"
if [ -d $DIR ];then
echo "dir: " "$DIR"
fi
[ -d $DIR ] &&
{
fun_test $DIR
}
done
}
fun_test .
//最好使用单引号,这更加符合标准,然后加上-E选项或者egrep。
.匹配任意一个字符,只要在行里面包含这个模式就会按该行展示。
[]匹配括号中的任意一个字符,[abc]就只能匹配a或者b或者c一个字符。
[-]在括号内表示范围,echo "test" | grep -E ‘tes[a-z]‘
[^]在括号里面的取相反的结果。
[[:alpha:]]匹配一个字母。
?匹配前面的单元一次或者零次。
+匹配它前面的单元一次或者多次。
*紧跟它前面的单元匹配零次或者多次。
{n}在-E选项中不需要使用\,表示前面这个单元重复n次,包括前面这个单元。
{n,m}重复前面单元n到m次,也包括前面这个单元。
{n,}重复前面这个单元至少n次。
{,n}重复前面这个单元最多n次。
上面这四个正则表达式都是闭包的。
^匹配行首的位置。
$匹配行未的位置。
<匹配单词开始的地方。
>匹配单词结束的地方。
<>匹配一个单词。
\b匹配单词开头或者结束的位置。
\B匹配非单词开始或者结束的位置。
^$匹配空行的位置。
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:shell
原文地址:http://blog.csdn.net/liuhuiyan_2014/article/details/46731465