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