免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: zengkun_2008
打印 上一主题 下一主题

关于变量的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-09-02 11:37 |只看该作者

回复 #10 zengkun_2008 的帖子

你参照这3楼的运行结果就可以看出含义了。我刚看到解释的时候也有些不懂,但是仔细一瞧。嘿,还真是那么回事。

论坛徽章:
0
12 [报告]
发表于 2008-09-02 11:41 |只看该作者
鸟哥的菜我正好看到变量这节了,就是没理解,和LZ一样的困惑....哎,数学没学好真碍事

我现在还是没有搞明白,另外,变量的使用是不是基本是在脚本中用到的

论坛徽章:
0
13 [报告]
发表于 2008-09-02 12:18 |只看该作者
那在看看这种用法:

echo  ${PATH#*:}
echo  $((2#101011))

论坛徽章:
0
14 [报告]
发表于 2008-09-02 12:32 |只看该作者
如果一次看不明白,就再看一遍,我在看第一次的时候没有搞清楚那个/*/和/*
原字符串 "/usr/share/document/testing.sh"

从前面截取的时候

1最长的/*/  就是    /usr/share/document/
2最短的/*/  就是    /usr/
3最长的/*   就是    /usr/share/document/testing.sh
4最短的/*   就是      /usr

如果从后头截取
5最长的/*/  就是    没有
6最短的/*/  就是    没有
7最长的/*   就是    /usr/share/document/testing.sh
8最短的/*   就是    /testing.sh

注意%的含义,[最后面那个字符],所以用%/*/ 没有办法找到匹配的字符,因为这个字符串的形式是
/*/*/*/*型的。从最后面开始找/*/,当然没有。

论坛徽章:
0
15 [报告]
发表于 2008-09-02 13:14 |只看该作者
echo  $((2#101011))

这个的意思就是将101011这个二进制数转换为10进制数并输出

可以给出echo  ${PATH#*:}的运行结果吗?我的猜想是删除全部。

[ 本帖最后由 gouree 于 2008-9-2 13:26 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2008-09-02 18:10 |只看该作者
找到比较好的解释:
r="/usr/local/bin/sftp"

m=${r##*/}

上式是說把 r 中符合 */ 這種目錄結構最長的部份刪去,把其右方剩下的部份設定給 m
即 m=sftp
其中 ## 代表 "符合最長的" 之意, */ 代表以 / 結束的任意字串。

m=${r#*/}
上式是說把 r 中符合 */ 的部份予以刪除(最短的)
此時 m=usr/local/bin/sftp

m=${r%/*}

上式是說把 r 中符合 /* 這種目錄結構的右方部份刪除
即 m=/usr/local/bin
其中 % 代表 "符合的" 之意, /* 代表以 / 開始的任意字串。

m=${r%%/*}
上式 %% 是說把 r 中符合 /* 的最長的部份的右方予以刪除
此時 m 為空

论坛徽章:
0
17 [报告]
发表于 2008-09-02 21:10 |只看该作者
echo  ${PATH#*:}
的运行结果就是PATH本身。就是说删除的部分为空。
如果换成
echo ${r#*/}
则运行结果应该是usr/local/bin/sftp
就是说这里的*代表的是空。
但是如果换成echo ${r#/*}
则这个*代表的就是usr/local/bin/sftp
由此可以推出echo  ${PATH#*:}的运行结果就是PATH本身,没有删除任何东西。
好了,现在所有的问题都解决了。
sungarfield 该用户已被删除
18 [报告]
发表于 2008-09-14 19:30 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP