Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7687678
  • 博文数量: 961
  • 博客积分: 15795
  • 博客等级: 上将
  • 技术积分: 16612
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-07 14:23
文章分类

全部博文(961)

文章存档

2016年(1)

2015年(61)

2014年(41)

2013年(51)

2012年(235)

2011年(391)

2010年(181)

分类: LINUX

2011-04-26 12:33:09

Shell 函数定义,在调用一个函数之前必须先定义。

#!/bin/bash

foo(){

    echo "hello word!"

}

echo "script start"

foo

echo "script ended"

2、使用local关键字在shell函数中声明局部变量

#!/bin/bash

test="global"

foo(){

    local test='local'

    echo $test

}

echo $test

foo

echo $test

3、从函数中返回一个值

#!/bin/bash

yes_or_no(){

    echo "is you name $*?"

    while true

    do

        read name

        case $name in

        y|Y|yes)

                return 0;; 

        n|N|not)

                return 1;; 

        *)

           echo "answer yes no" ;;

    esac

    done

}

if yes_or_no $1

then

    echo "hello $1"

else

    echo "sorry"

 fi

参数扩展

${param:-default} 如果param为空,就把它设置为default

${#param}  给出param的长度

${param%word}      从param的尾部删除与word匹配的最小部分,然后返回剩余部分

${param%%word}  从param的尾部删除与word匹配的最长部分,然后返回剩余部分

${param#word}      从param的头部删除与word匹配的最小部分,然后返回剩余部分

${param##word}  从param的头部删除与word匹配的最小部分,然后返回剩余部分

各种参数匹配操作符的用法:

#!/bin/bash

unset foo 

echo ${foo:-bar}

f00=fud

echo ${foo:-bar}

foo=/usr/bin/X11/startx

echo ${foo#*/}

echo ${foo##*/}

bar=/usr/local/etc/local/networks

echo ${bar%local*}

echo ${bar%%local*}

exit 0

阅读(2324) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~