LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1032|回复: 5

问下这个符号的含义:${!#}

[复制链接]
发表于 2007-5-23 13:51:43 | 显示全部楼层 |阅读模式
${!#}和 $#有什么关系吗?

谢谢帮忙。
发表于 2007-5-27 01:44:52 | 显示全部楼层
关系是: 陌路人
回复 支持 反对

使用道具 举报

发表于 2007-5-28 13:12:11 | 显示全部楼层
$#参数个数
${!VAR}表间接引用
合起来${!#}表示最后一个参数

hello=hehe
var=hello

echo  ${!var} # hehe

------------
(
set arg1 arg2 arg3 arg4
echo ${!#}
)  #arg4
回复 支持 反对

使用道具 举报

发表于 2007-5-29 09:05:37 | 显示全部楼层
赞楼上,又学到了一个很有用处的东东
回复 支持 反对

使用道具 举报

发表于 2007-6-2 03:53:25 | 显示全部楼层
哈哈,无意中看到
例子 23-4. 将一个间接引用传递给函数

  1 #!/bin/bash
  2 # ind-func.sh: 将一个间接引用传递给函数.
  3
  4 echo_var ()
  5 {
  6 echo "$1"
  7 }
  8
  9 message=Hello
10 Hello=Goodbye
11
12 echo_var "$message"        # Hello
13 # 现在,让我们传递一个间接引用给函数.
14 echo_var "${!message}"     # Goodbye
15
16 echo "-------------"
17
18 # 如果我们改变"hello"变量的值会发生什么?
19 Hello="Hello, again!"
20 echo_var "$message"        # Hello
21 echo_var "${!message}"     # Hello, again!
22
23 exit 0

很明显这个真是相当有趣
#! /bin/bash

declare -a a=(i j k a b c)

c=arg
default=i

echo ${!a[5]}
echo ${!1}
echo ${!2:-not_exist}

exit 0

JESSE@localhost\ sh test.sh c default
arg
arg
i

有时间再看咯
回复 支持 反对

使用道具 举报

发表于 2007-6-8 13:57:57 | 显示全部楼层
谢谢 谢谢 谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表