「シェルスクリプトの基礎 - 入出力」の版間の差分

ナビゲーションに移動 検索に移動
498行目: 498行目:
*: コマンド置換が使用不可。(``および$()がそのまま出力される)
*: コマンド置換が使用不可。(``および$()がそのまま出力される)
*: ヒアドキュメント内の行の先頭にあるタブが無視される。
*: ヒアドキュメント内の行の先頭にあるタブが無視される。
<br>
==== プロセス置換 <() ====
プロセス置換とは、コマンドの出力結果をファイルとして扱う機能である。<br>
例えば、diffコマンドは、引数にファイル以外を指定することができないが、<br>
プロセス置換を使用することで、コマンドの実行結果をdiffコマンドに直接渡すことができる。<br>
<br>
実行結果をファイルとして使用したいコマンドを、< ()で指定する
diff < (command) < (commandA; commandB)
<br>
以下の例のように、プロセス置換は、一時ファイルを作成せずにファイルの置換結果を確認したい場合等に有効である。<br>
# text.txtファイル(置換対象のファイル内容)
hoge
fuga
foo
bar
<br>
# 実行
diff text.txt < (sed -e 's/hoge/HOGE HOGE/' text.txt)
# 出力
1c1
< hoge
---
> HOGE HOGE
<br>
プロセス置換に使用するコマンドは、単一のコマンドのみではなく、<br>
セミコロン区切りの複数コマンド、パイプやネストしたプロセス置換も指定可能である。<br>
# 実行
diff < (echo "aaa"; echo "bbb") < (cat <(echo "aaa") | cat <(echo "BBB"); echo "ccc")
# 出力
1,2c1,2
< aaa
< bbb
---
> BBB
> ccc
<br><br>
<br><br>


__FORCETOC__
__FORCETOC__
[[カテゴリ:シェルスクリプト]]
[[カテゴリ:シェルスクリプト]]

案内メニュー