- 爱易网页
-
Linux
- 基于linux的叠加变量设置功能
日期:2014-05-16 浏览次数:20894 次
基于linux的附加变量设置功能
在${variable}的使用方法中,我们还可以修改变量,只要加上一些字符标志,后面再接着使用比较字符串,就能修改变量的内容了。
eg:
1、设置变量hello
[root@linux ~]#hello="/hi/hello/nihaoya/nihaoya.txt"
[root@linux ~]#echo ${hello}
/hi/hello/nihaoya/nihaoya.txt
2、在hello变量中,从最前面开始比较,若开头为/,则删除两个/之间所有的数据,即/*/
[root@linux ~]#echo ${hello##/*/}
nihaoya.txt--------删除了="/hi/hello/nihaoya/
[root@linux ~]#echo ${hello#/*/}
hello/nihaoya/nihaoya.txt--------仅删除/hi/
PS:从这两个例子可以看出,变量名后面如果有两个##,表示在##后面的字符串取“最长的”那一段;如果仅有一个#,表示取“最小的”那一段。
3、在hello变量中,如果从最后面开始比较,那会是怎样一种情况呢。。。。。。
[root@linux ~]#echo ${hello%%/*/}
/hi/hello/nihaoya/nihaoya.txt-----一个都没有删除
[root@linux ~]#echo ${hello%%/*}
--------------------都被删除了
[root@linux ~]#echo ${hello%/*}
/hi/hello/nihaoya-----------------只删除/nihaoya.txt这一部分
PS:好了,我们现在知道%的用法了,%比较的是“最后面那个字符”的意思,所以,第一个方式肯定不对,因为hello变量最后面的内容是t,而不是/。对于%%/*则是删除“最长的那个/*",而"%/*"则是“最短的那个”。
4、在hello变量中,将nihaoya替换成NIHAO
[root@linux ~]#echo ${hello/nihaoya/NIHAO}
/hi/hello/NIHAO/nihaoya.txt
[root@linux ~]#echo ${hello//nihaoya/NIHAO}
/hi/hello/NIHAO/NIHAO.txt
PS:如果变量后面接/,表示后面是进行“替换”工作,而且仅替换“第一个”匹配的,如果是//,则表示替换匹配字符串。
免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。