| author | プレハブ小屋 <2386769+showa-yojyo@users.noreply.github.com> | ||
|---|---|---|---|
| created | 2026-07-30 | ||
| draft | true | ||
| tags |
|
||
| title | Bash 命令置換ノート |
$(some-command)Warning
命令を backquotes で囲む形式は旧式であり、好んで使ってはいけない。
$(some-command)はサブシェルで走る。$(some-command)の標準出力が「外側」の命令の一部を構成するようになる。- 末尾の改行は除去される
$(cat some-file) をしたい場合は、より高速な $(< some-file) とするのが好ましい。
- 命令置換は入れ子可能だ。
- 二重引用符内で命令置換を行う場合、語分割やファイル名展開がその結果に対して行われない。
Important
Bash 5.3 からの新機能
${ some-command; }開き中括弧の直後から命令開始までの間には次のいずれかの文字がなければならない:
- 空白
- タブ文字
- 改行文字
|
some-command はサブシェルではなく現在の環境で走る。それ以外は $(some-command) と同様に動作する。
変数展開と紛らわしい構文につき、Bash に語として解釈させるように閉じ中括弧を書け。
以上