首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

求解一shell语句解决方法

2012-02-29 
求解一shell语句${var%${var#?}}这段语句可以显示var变量的第一个字符,也就是说varhello的话,这个语句就

求解一shell语句
${var%${var#?}} 这段语句可以显示var变量的第一个字符,也就是说var=hello的话,这个语句就是h

但是我不明白为什么,求详解

[解决办法]
不理解就把它拆开来理解啊:

${string#substring}
从变量$string的开头, 删除最短匹配$substring的子串 
${string##substring}
从变量$string的开头, 删除最长匹配$substring的子串 
${string%substring}
从变量$string的结尾, 删除最短匹配$substring的子串 
${string%%substring}
从变量$string的结尾, 删除最长匹配$substring的子串

Assembly code
[root@RHEL6A ~]# var=hello[root@RHEL6A ~]# echo $varhello从变量var的开头删除最短匹配?的字符串,这里的?应该是代表一个任意字符吧[root@RHEL6A ~]# echo ${var#?}ello这里是语句嵌套,可能用下面的方式看得更明白一点[root@RHEL6A ~]# echo ${var%${var#?}}h[root@RHEL6A ~]# var2=${var#?}[root@RHEL6A ~]# echo $var2ello从变量var的结尾删除最短匹配变量var2的字符串,这里的var2=ello,var=hello,所以剩下h,应该是这么理解吧[root@RHEL6A ~]# echo ${var%$var2}h 

热点排行