나는 다음과 같은 지시를 통해 배웠습니다.
Coprocessing은 한 번에 두 가지 작업을 수행합니다. 백그라운드 모드에서 하위 쉘을 생성하고 하위 쉘에서 명령을 실행합니다.
[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
은 shell 의 쉘 키워드입니다 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