私は指示からそれを学びました:
コプロセッシングは2つのことを同時に行います。バックグラウンドモードでサブシェルを生成し、そのサブシェル内でコマンドを実行します。
[root@iz2ze9wve43n2nyuvmsfx5z ~]# coproc ( sleep 10; sleep 2 )
[1] 32508
[root@iz2ze9wve43n2nyuvmsfx5z ~]# jobs
[1]+ Running coproc COPROC ( sleep 10; sleep 2 ) &
マニュアルを参照すると、フィードバックとしてエラーが発生します
root@iz2ze9wve43n2nyuvmsfx5z ~]# man coproc
No manual entry for coproc
[root@iz2ze9wve43n2nyuvmsfx5z ~]# coproc --info
[1] 32579
[root@iz2ze9wve43n2nyuvmsfx5z ~]# bash: line 25: --info: command not found
[1]+ Exit 127 coproc COPROC --info
help
は機能します
[root@iz2ze9wve43n2nyuvmsfx5z ~]# help coproc
coproc: coproc [NAME] command [redirections]
Create a coprocess named NAME.
Execute COMMAND asynchronously, with the standard output and standard
input of the command connected via a pipe to file descriptors assigned
to indices 0 and 1 of an array variable NAME in the executing Shell.
The default NAME is "COPROC".
Exit Status:
Returns the exit status of COMMAND.
これは非常に紛らわしいです、
どのマニュアルにアクセスできるコマンドの全体像を把握するにはどうすればよいですか?それらを区別する方法は?
coproc
は、bash
シェルのShellキーワードです。キーワードには通常、独自のman
マニュアルはありませんが、シェルのマニュアル(この場合はbash
、man bash
のマニュアル)に記載されています。 bash
シェルはhelp
コマンド(それ自体、help
は組み込みコマンドです)も提供します。これは、組み込みコマンドおよびcoproc
などの特別なキーワードの一種のマニュアルを提供します。
bash
、type
には別の組み込みコマンドがあり、コマンドが外部であるか組み込みであるかを区別するのに役立ちます。
$ type coproc
coproc is a Shell keyword
$ type help
help is a Shell builtin
$ type type
type is a Shell builtin
$ type ls
ls is /bin/ls
bash
の外部コマンドではないもの(上記の例ではls
のみが外部です)については、help
を使用するか、bash
マニュアルを読んでください(通常、help
が示すものよりも詳細です)。それ以外の場合は、man
を使用します。
シェルは、外部コマンドとしても使用できる場合でも、組み込みとしていくつかのコマンドを提供する場合があることに注意してください。これらの一般的な例は、echo
、printf
、test
、[
などですが、シェルは実際にはanyコマンドの内部バージョンを提供する場合があります。これは通常、パフォーマンス上の理由から、またはコマンドの拡張バージョンを提供するために行われます。
内部と外部の両方のコマンドは、シェルのマニュアルと外部のマニュアルの両方に記載されており、動作が異なる場合があります。 type
のbash
コマンドは、どちらを使用するかを示し、builtin
コマンドを使用して組み込みコマンドを強制的に使用するか、フルパス(例:/bin/echo
)を使用して外部コマンドを使用することができます。
set
、read
、cd
などの一部のコマンドは、通常、現在のシェルの環境を変更するため、組み込みコマンドとして提供されますのみ。これらは、help
のbash
によって文書化され、シェルのマニュアルでより詳細に文書化されます。