bashのtips
- '<<<'によるヒアドキュメントのようなリダイレクトのようなヤツ
- readのオプション http://ss64.com/bash/read.html
- (()) $(()) による計算、C言語とほぼ同じ演算子と式構文が使える。
- bash特有の配列、変数インデックスに$が不要なのがいい。
- setのオプション http://ss64.com/bash/set.html
- local宣言とlocalのunset
- クォーティングによるグロブ展開の抑制
- $''
- $() は入れ子ができる。
- =~ と正規表現、二重ブラケット内では使える。caseではグロブ展開しか使えない。
- 正規表現マッチの結果は BASH_REMATCH にある。http://dqn.sakusakutto.jp/2013/06/bash_rematch_regexp.html
- declare使うと良いみたい: http://yonchu.hatenablog.com/entry/2013/07/09/230656 , http://ss64.com/bash/declare.html
bash配列について: fooが配列変数だとして、$foo(${foo}) とすると、配列の先頭要素が参照されてしまう。$foo ≡ ${foo[0]} 従って、${#foo} は配列の長さではなくて、最初の要素の文字列長さ。非常に混乱する。配列の長さは、${#foo[@]} 。つまりfooは、参照の観点からは配列の名前ではなくて、配列の最初の要素の別名となる。配列全体は ${foo[@]} で参照する。
- $foo は、${foo[0]} のこと
- ${foo[@]} は、foo全体のこと