“man coproc” reportar erro mas “help coproc” funciona (onde encontrar documentação para certos comandos?) [duplicado]

0

Eu aprendi isso com uma instrução:

Co-processing does two things at the same time. It spawns a subshell in background mode and executes a command within that subshell.

[root@iz2ze9wve43n2nyuvmsfx5z ~]# coproc ( sleep 10; sleep 2 )
[1] 32508
[root@iz2ze9wve43n2nyuvmsfx5z ~]# jobs
[1]+  Running                 coproc COPROC ( sleep 10; sleep 2 ) &

Quando me refiro ao manual, recebo um erro como feedback

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 funciona

[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.

Isso é muito confuso,
Como eu poderia ter uma visão geral dos comandos em quais manuais eu posso alcançar? Como distingui-los?

    
por JawSaw 25.10.2018 / 02:53

1 resposta

1

coproc é uma palavra-chave do shell no shell bash . Palavras-chave normalmente não têm seus próprios man manuais, mas estão documentadas no manual do shell (neste caso, no manual de bash , man bash ). O shell bash também fornece um comando help (em si, help é um comando interno) que fornece uma espécie de manual para comandos incorporados e palavras-chave especiais como coproc .

Há outro comando incorporado em bash , type , que ajudará a distinguir se um comando é externo ou interno:

$ 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

Para itens que não são comandos externos em bash (somente ls é externo no exemplo acima), use help ou leia o manual bash (que geralmente é mais detalhado do que o que help mostrar a você). Para qualquer outra coisa, use man .

Observe que o shell também pode fornecer vários comandos como internos, embora também estejam disponíveis como comandos externos. Exemplos comuns são echo , printf , test e [ etc., mas um shell pode, de fato, fornecer versões internas do comando any . Isso geralmente é feito por motivos de desempenho ou para fornecer uma versão aprimorada de um comando.

Comandos internos e externos serão documentados tanto no manual do shell como em um manual externo, e eles podem funcionar de maneira diferente. O comando type em bash dirá qual deles será usado e você pode forçar o uso de um comando interno usando o comando builtin ou um comando externo usando-o com seu caminho completo (por exemplo, /bin/echo ).

Alguns comandos, como set , read e cd , são geralmente apenas fornecidos como comandos incorporados à medida que modificam o ambiente do shell atual. Eles serão documentados por help in bash e em mais detalhes no manual do shell.

    
por 25.10.2018 / 08:32

Tags