代碼:
#! /bin/bash
ALL="hello.log"
echo ${ALL%.*}
我知道了 「你好」 將顯示,但是如何理解「$ {所有%*}」? 謝謝。
代碼:
#! /bin/bash
ALL="hello.log"
echo ${ALL%.*}
我知道了 「你好」 將顯示,但是如何理解「$ {所有%*}」? 謝謝。
{ }
用於展開,並且%.*
用於從回顯中刪除ALL
變量中包含的所有字符。
這是一個參數擴展。它在手冊的相應章節中有記錄,您可以通過輸入man bash
來查看。搜索${parameter%word}
。
讓我們打破這一點;
${ALL%.*}
${ }
- 使用Parameter Expansion。ALL
- 變量名稱。%
- 從字符串(RHS)(非貪婪)的末尾開始刪除。.*
- 模式匹配表達式;一個字面點隨後是任何字符。
@lxgeek,具體而言,從* last *點向前刪除字符。如果你想刪除* first *和後續字符,使用'$ {ALL %%。*}'。在「shell參數擴展」下的bash手冊中有記錄。 –
@glennjackman是的,忘了指定它。好點子! :) – DonCallisto