Chinaunix
标题:
请教下这句shell什么意思 ?
[打印本页]
作者:
ruifeng_
时间:
2013-08-22 11:53
标题:
请教下这句shell什么意思 ?
echo $((${a//.*/+1}))
看不懂是啥意思,请教下
作者:
关阴月飞
时间:
2013-08-22 12:52
本帖最后由 关阴月飞 于 2013-08-22 12:54 编辑
回复
1#
ruifeng_
echo $(( ${a//.*/+1} ))
$(( )) ==》 运算
${a//.*/+1} ==》 ${var//Pattern/Replacement} ==> 全局替换. 所有在变量var 匹配Pattern的字符串, 都会被替换为Replacement .
这里的作用是,把a变量中 "." 字符及后面的所有字符串 替换成 +1
例如:
[root@ ~]# a=1.23456
[root@ ~]# echo ${a//.*/+1}
1+1
[root@ ~]# a=a.adsfsdlkfe
[root@ ~]# echo ${a//.*/+1}
a+1
复制代码
目测这个作用是把小数转换成整数:
[root@ ~]# a=1.2
[root@ ~]# echo $((${a//.*/+1}))
2
[root@ ~]# a=1.093028427394
[root@ ~]# echo $((${a//.*/+1}))
2
[root@ ~]# a=99.093028427394
[root@ ~]# echo $((${a//.*/+1}))
100
复制代码
作者:
Shell_HAT
时间:
2013-08-22 12:54
http://bbs.chinaunix.net/viewthr ... p;page=7#pid1617953
[root@ ~]# a=1.txt
[root@ ~]# echo $((${a//.*/+1}))
2
[root@ ~]# a=2.txt
[root@ ~]# echo $((${a//.*/+1}))
3
作者:
seesea2517
时间:
2013-08-22 13:15
回复
3#
Shell_HAT
原来是这个用途。
作者:
刺客阿地
时间:
2013-08-22 13:44
长见识了,看来得学好基础才能看懂!
作者:
ruifeng_
时间:
2013-08-22 14:16
明白了, 非常感谢楼上两位的指点。
作者:
zhaopingzi
时间:
2013-08-22 14:25
写shell或者程序,后面加个注释,在软件质量方面来说是加分的
作者:
rdcwayx
时间:
2013-08-22 14:45
Shell的这个处理确实比较隐晦,但是却又是非常有用的,楼主看一遍我给的那个链接吧。
我們也可以對變量值裡的字串作替換:
${file/dir/path}:將第一個 dir 提換為 path:/path1/dir2/dir3/my.file.txt
${file//dir/path}:將全部 dir 提換為 path:/path1/path2/path3/my.file.txt
http://bbs.chinaunix.net/forum.p ... p;page=7#pid1617953
作者:
ruifeng_
时间:
2013-08-22 14:55
回复
8#
rdcwayx
多谢, 多谢
作者:
reyleon
时间:
2013-08-22 23:28
学习了
都是大牛
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2