iT邦幫忙

0

linux變數內容的刪除

CMAN 2013-12-10 19:51:133074 瀏覽

各位先進好~
小弟在閱讀的時候有點障礙~
在鳥哥的linux書中在講解變數內容要刪除
這裡卡了一大關~
以下是path變數內容~
[root@localhost ~]#echo $path
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:
/usr/bin:/bin:/root/bin:/home/alex/
接著是我要執行刪除的動作
[root@localhost ~]#echo ${path**#**/*sbin}
/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/home/alex/
問題來了我知道為何我明明是指sbin第一個路徑也不見
鳥哥所寫符合取代文字的『最短的』那一個,這句話的意思為何
小弟真是想不出來~呵呵..= =
有沒有人能夠更清楚的說明他的方式~~讓小弟了解
感謝了~!!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

4
fillano
iT邦超人 1 級 ‧ 2013-12-10 20:26:06
最佳解答

這跟路徑沒什麼關係。${var#pattern}做的事情,就是在var中找到最短的符合pattern的字串然後刪除。

所以依照所下的規則,/usr/lib64/qt-3.3/bin:/usr/local/sbin這一段就被刪掉了(從/開始到sbin)...剩下來的部分,最前面應該還有個冒號「:」吧?

CMAN iT邦新手 4 級 ‧ 2013-12-11 21:27:38 檢舉

開心
感謝
抱歉再問一個問題哈哈
所以說他不會是你執行echo ${path#/sbin}他就刪除/sbin吧~
他是從頭開始對,前面沒對到就不會刪除,是這樣吧?

fillano iT邦超人 1 級 ‧ 2013-12-12 16:42:45 檢舉

是的

CMAN iT邦新手 4 級 ‧ 2013-12-12 16:48:26 檢舉

感謝阿~~開心開心開心開心開心開心

我要發表回答

立即登入回答