Shell脚本编程之函数篇

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

#!/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
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值