特殊記号、.*# 中括弧内 [重複]

特殊記号、.*# 中括弧内 [重複]
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#*.}この値を評価する方法は?そして、中の特殊文字はどういう*意味ですか?.#{}

答え1

から引用バッシュリファレンスマニュアル:

  • ${parameter#word}

  • ${parameter##word}

    ファイル名拡張と同様に、単語が拡張されてパターンが生成されます(ファイル名拡張子を参照)。パターンがパラメータ拡張値の先頭に一致する場合、拡張結果は、最短一致パターン(「#」の場合)または最長一致パターン(「##」の場合)を持つパラメータ拡張値になります。削除されました。 ...

  • ${parameter%word}

  • ${parameter%%word}

    ファイル名拡張と同様に、単語を拡張してパターンを生成します。パターンがパラメータ拡張値の末尾の部分と一致する場合、拡張結果は、最短一致パターン(「%」ケース)または最長一致パターン(「%%」ケース)を持つパラメータ値を削除します。 ...

関連情報