变量的内容可以很简单的透过几个咚咚来½行删除喔!我们使用
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