disk="/dev/sda"
local dev_node=${disk##*/}
dev_node分配有「sda」。bash中##和%%的功能是什麼
此外,
partition="/dev/sda3"
echo ${partition%%[0-9]*}
它返回的/ dev/SDA和除去3.
我不理解的##的功能* /和%% [0-9] *在上述命令。我試圖搜索,但無法獲得足夠的信息。
請解釋並提供與此相關的教程的任何鏈接。
disk="/dev/sda"
local dev_node=${disk##*/}
dev_node分配有「sda」。bash中##和%%的功能是什麼
此外,
partition="/dev/sda3"
echo ${partition%%[0-9]*}
它返回的/ dev/SDA和除去3.
我不理解的##的功能* /和%% [0-9] *在上述命令。我試圖搜索,但無法獲得足夠的信息。
請解釋並提供與此相關的教程的任何鏈接。
這是一個非常好的manual/tutorial。什麼涉及您的問題:
$ {串##串}從 $字符串前刪除$子的最長匹配。
和
$ {字符串%%子}刪除從回的 $字符串$子的最長匹配。
施加到你的例子:在sda
此過程通常被描述爲parameter expansion
除去最長子串匹配*/
從/dev/sda
結果。
在你的情況下,##
和%%
是提取部分字符串的運算符。
##
刪除從給定字符串開始處開始的已定義子串的最長匹配。
%%
也是如此,除了從字符串的後面開始。
好的指導是here。
'man bash' then'/ ##' –