bash保育園にいた頃 $()とか${}とかでてきて混乱しました。
メモです。多分全てではありません。
複数のコマンド(の出力)をまとめる
$ {
echo hello;
echo world;
} > hoge.txtこんなの
$ echo hello{1,2,3}
hello1 hello2 hello3他にも色々ある。変数展開だけでgist一つ書けそう
$ echo ${VAL}$ pwd; (cd hoge); pwd
/home/shell
/home/shell$ arr = ("a", "b" , "c")コマンド置換。 サブシェルの標準出力を値として得る
$ HELLO=$(echo "$(echo hello) $(echo world)")おまけ
VAR=$(<file) : file を変数に
プロセス置換。 サブシェルの標準入力・標準出力をファイルとして扱う
$ diff <(findとか) <(grepとか)算術計算を行う
$ echo $((3.14 * 4))
12.56- testコマンドのシンタックスシュガー
- [[]] は昨日拡張されたver
- 式のグループ化
() - 論理積
&&論理和|| - 論理否定
! - 文字列比較
==!= - 正規表現マッチ
~=
- 式のグループ化