Bash 4、展開と小文字への変換

Bash> 4.0では、変数の展開が変数の小文字化に使用されていることがわかります。例

echo ${variable,,} 

のマニュアルページを読むなぜシェルなのかよくわかりません文字列を小文字に変換しています。

シーケンス式は{x..y [.. incr]}の形式を取ります。ここで、xとyはどちらかです。整数または単一文字、およびオプションの増分であるincrは整数です。整数を指定すると、式はxからyまでの各数値に展開されます。指定された整数の前に「0」を付けて、各項に同じ幅。xまたはyのいずれかがゼロで始まる場合、シェルは生成されたすべての用語に同じ桁数を強制的に含め、必要に応じてゼロパディングを試みます。文字が指定されると、式はxとxの間の字句的に各文字に展開されます。 yを含み、デフォルトのCロケールを使用します。xとyの両方が同じタイプである必要があることに注意してください。増分が指定されると、各項の差として使用されます。デフォルトの増分は1oです。必要に応じてr-1。

変数が小文字に変換されるのはなぜですか?

回答

あなたはドキュメントの間違ったセクションを読んでいます。代わりに、シェルパラメータの展開をご覧ください。

${parameter^pattern}

${parameter^^pattern}

${parameter,pattern}

${parameter,,pattern}

この拡張により、parameterのアルファベット文字の大文字と小文字が変更されます。 patternは、ファイル名の展開と同じようにパターンを生成するように展開されます。 parameterの展開された値の各文字はpatternに対してテストされ、パターンに一致する場合は大文字と小文字が変換されます。パターンは、複数の文字に一致しようとしないでください。 「^」演算子は、パターンに一致する小文字を大文字に変換します。 「、」演算子は、一致する大文字を小文字に変換します。 ‘^^’および ‘,,’展開は、展開された値の一致する各文字を変換します。 「^」および「、」展開は、展開された値の最初の文字のみに一致して変換します。 patternを省略すると、すべての文字に一致する「?」のように扱われます。 parameterが「@」または「*」の場合、大文字と小文字の変更操作が各位置パラメータに順番に適用され、展開が結果のリストになります。 parameterが @または *で添え字付きの配列変数である場合、大文字と小文字の変更操作が配列の各メンバーに順番に適用され、展開が結果のリストになります。

回答

「ブレース拡張」の部分を引用しています。 「中括弧の拡張」は$で始まりません。

次のコマンドを実行する必要があります:

LESS=+/"\{parameter\^pattern\}" man bash 

$${ ^^ })で始まる「ケース変更」の部分を検索します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です