LinuxSir.cn,穿越时空的Linuxsir!

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

有个问题不明白是怎么回事,大虾们帮忙

[复制链接]
发表于 2008-3-25 10:50:11 | 显示全部楼层 |阅读模式
7 getopt_simple()
  8 {
  9     echo "getopt_simple()"
10     echo "arameters are '$*'"
11     until [ -z "$1" ]
12     do
13       echo "rocessing parameter of: '$1'"
14       if [ ${1:0:1} = '/' ]
15       then
16           tmp=${1:1}               # 去掉开头的'/' . . .
17           parameter=${tmp%%=*}     # 提取参数名.
18           value=${tmp##*=}         # 提取参数值.
19           echo "arameter: '$parameter', value: '$value'"
20           eval $parameter=$value
21       fi
22       shift
23     done
24 }

这是我在ABS里看到的.最不明白的就是一个问题:
${1:0:1}
${1:1}   
${tmp%%=*}
${tmp##*=}  
后两个我知道,是截取问题.第一个和第二个好像在书的前一部分是没有写的.
 楼主| 发表于 2008-3-25 13:01:26 | 显示全部楼层
找大答案了。
回复 支持 反对

使用道具 举报

发表于 2008-3-27 22:22:51 | 显示全部楼层
呵呵,我刚看到这里,不过我有点不明白的是第20行:
20 eval $parameter=$value

还有$test和$test2的值是怎样传递过来的。能帮忙回答一下么?谢谢

27 getopt_simple $*
28
29 echo "test is '$test'"
30 echo "test2 is '$test2'"
31
32 exit 0
回复 支持 反对

使用道具 举报

发表于 2008-3-28 16:10:05 | 显示全部楼层
eval $paramter 是变量替换
如果仅仅是变量赋值,那左边的变量名是没有$
回复 支持 反对

使用道具 举报

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

本版积分规则

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