web-dev-qa-db-ja.com

「mancoproc」はエラーを報告しますが、「help coproc」は機能します(特定のコマンドのドキュメントはどこにありますか?)

私は指示からそれを学びました:

コプロセッシングは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.

これは非常に紛らわしいです、
どのマニュアルにアクセスできるコマンドの全体像を把握するにはどうすればよいですか?それらを区別する方法は?

1
Calculus

coprocは、bashシェルのShellキーワードです。キーワードには通常、独自のmanマニュアルはありませんが、シェルのマニュアル(この場合はbashman bashのマニュアル)に記載されています。 bashシェルはhelpコマンド(それ自体、helpは組み込みコマンドです)も提供します。これは、組み込みコマンドおよびcoprocなどの特別なキーワードの一種のマニュアルを提供します。

bashtypeには別の組み込みコマンドがあり、コマンドが外部であるか組み込みであるかを区別するのに役立ちます。

$ 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を使用します。

シェルは、外部コマンドとしても使用できる場合でも、組み込みとしていくつかのコマンドを提供する場合があることに注意してください。これらの一般的な例は、echoprintftest[などですが、シェルは実際にはanyコマンドの内部バージョンを提供する場合があります。これは通常、パフォーマンス上の理由から、またはコマンドの拡張バージョンを提供するために行われます。

内部と外部の両方のコマンドは、シェルのマニュアルと外部のマニュアルの両方に記載されており、動作が異なる場合があります。 typebashコマンドは、どちらを使用するかを示し、builtinコマンドを使用して組み込みコマンドを強制的に使用するか、フルパス(例:/bin/echo)を使用して外部コマンドを使用することができます。

setreadcdなどの一部のコマンドは、通常、現在のシェルの環境を変更するため、組み込みコマンドとして提供されますのみ。これらは、helpbashによって文書化され、シェルのマニュアルでより詳細に文書化されます。

2
Kusalananda