What’s New In Bash 3 ノート

Bash バージョン 3.x で追加された新機能のメモ。

概要

パイプのデバッグ用機能を除いてすべて重要。

  • 一般化された中括弧展開演算子。echo で試すのがもっとも簡単だと思われる。例をいくつか挙げる:

    • {1..10}, {10..1} などで数列を展開する。空白文字区切り(以下同様)。

    • {a..z}, {z..a}, {e..m}, etc. で文字列を展開する。

    • "Number #"{1..4}, etc. で分配法則が働いて展開する。

    • {1..3}{x..z}" +" で直積を展開する。だからこの例では末端に要らない + が残る。

    • {{a..c},{1..3}} とすると、まず {a..c} を展開してその次に {1..3} を展開する。中央にある , に注意すること。

  • 配列の添字を展開する演算子 ${!array[@]}

    • 何に利用できるか考えてみよう。

  • 正規表現マッチング演算子 =~

    • 二重角括弧の内部で用いる。

    • if [[ "This is a fine mess." =~ T.........fin*es* ]];

    • こういう状況における正規表現に対して引用符で囲むのは望ましくないとある。正規表現を展開するのに失敗するかもしれないそうだ。

  • オプション set -o pipefail

    • これは使わないと思われるので割愛。

  • 演算子 += が使いやすくなった。代入演算子 = しか使えなかった状況で += も使えるようになる。

    • とりわけ PATH の追加に使える。

  • その他バグ修正。割愛。

参考資料