Skip to content

Instantly share code, notes, and snippets.

@sho-t
Last active November 29, 2018 07:17
Show Gist options
  • Save sho-t/c58cdb0b850a72f8bdc88815cd86eca9 to your computer and use it in GitHub Desktop.
Save sho-t/c58cdb0b850a72f8bdc88815cd86eca9 to your computer and use it in GitHub Desktop.
shellの括弧メモ

shell 括弧色々メモ

bash保育園にいた頃 $()とか${}とかでてきて混乱しました。 メモです。多分全てではありません。

{} (braces)

グループコマンド(group command)

複数のコマンド(の出力)をまとめる

$ {
   echo hello;
   echo world;
} > hoge.txt

ブレース展開(brace expansion)

こんなの

$ echo hello{1,2,3}
hello1 hello2 hello3

${} (variable expansion)

変数展開(variable expansion)

他にも色々ある。変数展開だけでgist一つ書けそう

$ echo ${VAL}

() (parentheses)

サブシェルで実行する

$ pwd; (cd hoge); pwd
/home/shell
/home/shell

配列の宣言

$ arr = ("a", "b" , "c")

$() (Command Substitution)

コマンド置換。 サブシェルの標準出力を値として得る

$ HELLO=$(echo "$(echo hello) $(echo world)")

おまけ VAR=$(<file) : file を変数に


<(), >() (Process Substitution)

プロセス置換。 サブシェルの標準入力・標準出力をファイルとして扱う

$ diff <(findとか) <(grepとか)

$(()) (Arithmetic Expansion)

算術計算を行う

$ echo $((3.14 * 4))
12.56

[ ] , [[ ]] (Bracket,Double bracket )

  • testコマンドのシンタックスシュガー
  • [[]] は昨日拡張されたver
    • 式のグループ化 ()
    • 論理積 && 論理和 ||
    • 論理否定 !
    • 文字列比較 == !=
    • 正規表現マッチ ~=

thanks

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment