Bashリファレンスマニュアルから
パイプラインは一連です簡単なコマンド
|
制御演算子の1つに分けられます|&
。
POSIX 2013で
パイプラインは1つ以上のシーケンスです。注文する制御演算子で区切られます
|
。
Bashに|&
。
ただし、これはパイプラインのコンポーネントコマンドです。
- 簡単なコマンドまたは
- どのコマンド(単純、再パイプ、リスト、複合、関数)?
Bashでは、次のことができます。
$ for f in $(ls *); do echo $f; done | cat
ただし、パイプラインの最初のコンポーネントコマンドは単純ではなく複雑です。
答え1
Bash 4.4.5のマニュアルには、パイプラインコンポーネントを説明するときに「単純」という単語は含まれていません。あなたが言う「簡単な命令」はオタナミスかもしれませんし、昔の遺物かもしれません。
それbash
2014年4月管理者によって修正されました、現在の内容は次のとおりです。
パイプは、制御演算子またはで
|
区切られた1つ以上のコマンドシーケンスです|&
。
パイプは、明らかに単純なコマンドまたは単純でないコマンド(for
複合コマンドであるサブシェルやループなど)で構成できます。
答え2
Bash マニュアル ( man bash
) はパイプ記述に単純という言葉を含んでいません。すべてのbash-${version}.tar.gz
ファイルをインポートこのウェブサイトから、解凍してファイルを確認してください。bash-${version}/doc/bash.1
このファイルは bash 各バージョンのユーザーマニュアルです。
この単語を含むすべてはファイルsimple
ですbashref
。上記のbashrefマニュアルの4.3より前のバージョンのブランチの単語bash-${version}/doc/bashref.pdf
を含む上記と同じダウンロードと拡張ファイルを読みます。simple
3.2.2 Pipelines
3.2.2パイプラインパイプラインは「|」または、「|&」で区切られた一連の単純なコマンドです。
bashrefにこれらの単語が含まれているからといって、複雑なコマンド(「単純」とは反対)が何らかの方法でパイプライン(パイプライン{…}
if…then…
while…do…
や他のパイプラインを含む)から除外されるわけではありません。
この表現は単純な誤字であるため、結論を導くために使用してはいけません。