变量的内容可以很简单的透过几个咚咚来½行删除喔!我们使用
PATH
这个变量的内容来做测试好
了。
请你依序½行底下的几个例子来玩玩,比½容易感受的到鸟哥在这里想要表达的意义:
范例一:先
path
自定
义变
定的与
PATH
容相同
[dmtsai@study ~]$
path=${PATH}
[dmtsai@study ~]$
echo ${path}
/usr/local/bin:
/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
范例二:假
我不喜
local/bin
,所以要
½
1
录删
除掉,如何
示?
[dmtsai@study ~]$
echo ${path#/*local/bin:}
/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
上面这个范例很有趣的!他的重点可以用底下这张表格来说明:
${
variable#/*local/bin:
}
上面的特殊字体部分是
关键词
!用在
除模式所必
存在的
${
variable
#/*local/bin:}
就是原本的
量名
,以上面范例二
来说
里就填
path
这个
量名
』啦!
${variable
#
/*local/bin:}
是重
!代表『
从变
容的最前面
始向右
除』,且
½删
除最短的那
${variable#
/*local/bin:
}
代表要被
除的部分,由于
#
代表由前面
除,所以
里便由
始的
/
起。
需要注意的是,我
们还
可以透
通配符
*
取代
0
无穷
任意字符
以上面范例二的
½
看,
path
这个变
量被
除的
容如下所示:
/usr/local/bin:
/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
很有趣吧!这样了½了
#
的功能了吗?½下来让我们来看看底下的范例三!
范例三:我想要
除前面所有的目
½
保留最后一
[dmtsai@study ~]$
echo ${path#/*:}
/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
#
由于一
#
½删
除掉最短的那
,因此他
除的情
可以用底下的
线来
看:
#
/usr/local/bin:
/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
[dmtsai@study ~]$
echo ${path##/*:}
/home/dmtsai/bin
#
嘿!多加了一
#
##
之后,他
成『
除掉最
的那
个数
据』!亦即是:
#
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:
/home/dmtsai/bin