Chinaunix首页 | 论坛 | 博客
  • 博客访问: 15498059
  • 博文数量: 2005
  • 博客积分: 11986
  • 博客等级: 上将
  • 技术积分: 22535
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-17 13:56
文章分类

全部博文(2005)

文章存档

2014年(2)

2013年(2)

2012年(16)

2011年(66)

2010年(368)

2009年(743)

2008年(491)

2007年(317)

分类:

2008-12-27 13:58:09

浅析shell脚本函数调用和变量间接引用

lu() {
    echo "'\$#'=$#"
    echo "'\$*'=$*"
    echo "'\$@'=$@"
    echo 'aaaaaaaaa'
}

str='lu 1 2 3;lu a b'
eval $str # 2次调用函数lu


luther_gliethttp_func1() {
    echo 'bbbbbbbbb'
}
a="luther_gliethttp_func1"  # a中存放内容
b=luther_gliethttp_func1    #
"luther_gliethttp_func1"    # sh程序将该字符串解释为系统命令,经过查询发现是一个函数,所以执行该函数
$a                          # 将a中内容展开放到这里,即"luther_gliethttp_func1"
                            # 而"luther_gliethttp_func1"是一个函数名,所以将执行该函数
$b                          # 将b中存放的内容展开,放到这里然后执行b中的内容
a=b
b='ccccccccc'
echo \$$a
eval echo \$$a
eval c=\$$a
echo $c
exit

luther@gliethttp:~$ ./run.sh
'$#'=3
'$*'=1 2 3
'$@'=1 2 3
aaaaaaaaa
'$#'=2
'$*'=a b
'$@'=a b
aaaaaaaaa
bbbbbbbbb
bbbbbbbbb
bbbbbbbbb
$b
ccccccccc
ccccccccc

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