频道栏目
首页 > 资讯 > 虚拟机 > 正文

Sheel脚本编程之函数篇

15-07-01        来源:[db:作者]  
收藏   我要投稿

首先让我们来看看两种函数的返回值获取方式:

#!/bin/bash
#函数返回值获取测试。
function fun_test()
{
    #在函数内部是不能有其他的任何一条打印语句。
    echo 100
}
val=$(fun_test) 
echo $val

另外一种:

#!/bin/bash
#函数返回值获取测试。
function fun_test()
{
    return 100
}
fun_test
val=$?
echo $val
#!/bin/bash
#在当前目录下面创建多个不存在的目录。
function create_dir()
{ 
     mkdir ./$1 > /dev/null
}
while [ $# -gt 0 ];do
    a=`ls | grep "$1"`
    if [ "$a" == "$1" ];then
        echo "has exit!!!"
        exit 0
    else
    create_dir $1
    fi
    shift 1
done
#/bin/bash
#递归求解1+...100
sum=0
function fun_test()
{
   if [ $1 -gt 0 ];then
    set -x 
    let sum+=$1
    set +x
    fun_test $(($1-1))
    else
       echo  $sum
    fi  
}
val=$(fun_test 100)
echo $val
#!/bin/bash
#打印指定目录中的所有目录文件。
function is_dir()
{
    local dir=$1
    if [ -d ${dir} ];then
    return 0
    else
    return 1
        fi
}

function ls_dir()
{
    local dir=$1
    arr=(`ls ${dir}`)#创建数组。
    cd $dir
    #跳转目录。
    for((i=0;i<${#arr[@]};i++))
    {
        #遍历数组,这里有点重要。
        if [ -d ${arr[i]} ];then
        echo "this is a dir:" ${arr[i]}
        else
             echo "this is't a dir:" ${arr[i]}

        fi
    }
    cd -
    #回到主进程目录。

}

proc=$(basename $0)
proc=`basename $0` 
function usage()
{
    printf "%s%s\n" "usage:" "./${proc}dir"
        #如果没有传进入参数,则将错误消息返回告知用户。
}

if [ $# -ne 1 ];then
    usage
    exit 1
fi
ls_dir $1  
#!/bin/bash
#打印一个动态的进度条,没有实现颜色的改变了。
arr=("|" "/" "-" "\\")
function pro()
{
    local i=0
    str=''
    while [ $i -le 100 ]
    do
    let index=i%4
    printf "[%s][%d%%][%c]\r"  "$str"  $i "${arr[index]}"
    sleep 0.2
    let i++
    str=${str}#
    done
}
pro
相关TAG标签
上一篇:远离Flash,远离危险:从Flash 0day漏洞披露到集成渗透工具包,仅用4天
下一篇:mongodb的分布式集群(4、分片和副本集的结合)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站