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

相关推荐