私は以下の指示を通して学びました。
Coprocessingは一度に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
coproc
はシェルのシェルキーワードですbash
。キーワードには通常独自のマニュアルはありませんが、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
[
どの注文する。これは通常、パフォーマンス上の理由で、またはコマンドの拡張バージョンを提供するために行われます。
内部コマンドと外部コマンドの両方がシェルマニュアルと外部マニュアルに文書化されており、おそらく異なる動作をします。type
のコマンドは、組み込みbash
コマンドを強制するために使用できるコマンド、または外部コマンドを強制するためにフルパスbuiltin
(たとえば)を使用できるコマンドを示します。/bin/echo
set
、read
およびcd
通常のようないくつかのコマンドただ現在のシェルの環境を変更するので、組み込みコマンドとして提供されます。これはシェルのマニュアルhelp
でよく説明されています。bash