Variable-Substitution
特殊符號,.* # 在大括號內
bash=${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.} echo "BASH VERSION --- $BASH_VERSION" echo "bmajor ----- $bmajor" echo "bminor ----- $bminor"
印刷,
BASH VERSION --- 4.2.46(1)-release bash --- 4.2 bmajor ----- 4 bminor ----- 2
我通常使用大括號
{}
來處理數組。我在這裡看到,它們用於模式匹配。如何
${BASH_VERSION%.*}; bmajor=${bash%.*}; bminor=${bash#*.}
評估這些值?裡面的特殊字元 , ,*
是什麼意思?.``#``{}
引用Bash 參考手冊:
${parameter#word}
${parameter##word}
單詞被擴展以產生一個模式,就像在文件名擴展中一樣(請參閱文件名擴展)。如果模式匹配參數擴展值的開頭,則擴展結果是具有最短匹配模式(’#’ 情況)或最長匹配模式(’##’ 情況)的參數擴展值刪除。…
${parameter%word}
${parameter%%word}
單詞被擴展以產生一個模式,就像在文件名擴展中一樣。如果模式匹配參數擴展值的尾隨部分,則擴展結果是具有最短匹配模式(’%’ 情況)或最長匹配模式(’%%’ 情況)的參數值刪除。…