`
techcurtman
  • 浏览: 48578 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类

基于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:如果变量后面接/,表示后面是进行“替换”工作,而且仅替换“第一个”匹配的,如果是//,则表示替换匹配字符串。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics