我有一個bash腳本,我在代碼
${variable#!}
意味着什麼看? 非常感謝
我有一個bash腳本,我在代碼
${variable#!}
意味着什麼看? 非常感謝
它從變量的值中刪除前導!
。
一個例子將是:
kent$ foo='!!hello'
kent$ echo ${foo#!}
!hello
演示:
var="!some!some!"
echo ${var#!}
打印
some!some!
參見http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion
$ {parameter#word}
該單詞被擴展爲生成一個模式,就像在文件名擴展中一樣。如果模式匹配參數展開值的開始位置,則展開結果是匹配模式最短的參數展開值。如果參數是'@'或'',則將模式刪除操作依次應用於每個位置參數,並且擴展是結果列表。如果參數是一個以'@'或''爲下標的數組變量,則模式刪除操作將依次應用於數組的每個成員,並且該擴展是結果列表。
所以,如果$variable
開始!
,它將返回其內容,而第一!
。如果不是,則返回$variable
。
從技術上講,它不會從變量*中刪除*,它將擴展到變量的內容並將其刪除。我知道你知道,但可能值得一提的是,它不會在沒有重新分配的情況下更改變量的內容。 – 2014-09-05 09:25:40
@AdrianFrühwirth你是對的。在這個例子中它不會改變'foo'。 – Kent 2014-09-05 09:27:43