- 论坛徽章:
- 1
|
请大家帮我解释一下这两题
1、 $temp='this is a temped variable'; echo ${temp%%is}
执行上述命令的结果为: C
A. th
B. this
C. this is a temped variable
D. this is
%%is 是什么意思啊
13. $my='foofoodfoodfot.jpg'
$echo ${my##*fo}
执行上述命令的结果为:c
A. ofoodfot.jpg
B. odfot.jpg
C. t.jpg
D. .jpg
##*fo是什么意思啊
- %%,##,#,%都是截断字符串
- ${}是一个变量
- 如:
- $ MYVAR=foodforthought.jpg
- $ echo ${MYVAR##*fo}
- rthought.jpg
- $ echo ${MYVAR#*fo}
- odforthought.jpg
- 在第一个例子中,输入了 ${MYVAR##*fo}。
- ${ } 中输入环境变量名称,两个 ##,然后是通配符 ("*fo")。然后,bash 取得 MYVAR,找到从字符串 "foodforthought.jpg" 开始处开始、且匹配通配符 "*fo" 的最长子字符串,然后将其从字符串的开始处截去。
- 第二个变量只使用一个 "#" -- 并且 bash 执行几乎同样的过程。它查看与第一个例子相同的子字符串系列,但是 bash 从初始字符串除去最短的匹配,然后返回结果。所以,一查到 "fo" 子字符串,它就从字符串中除去 "fo",然后返回 "odforthought.jpg"。
- %%反之,从字符串末尾除去字符。
复制代码 |
|