2012-07-18 2 views
1

strace로 nice.sh 스크립트의 출력을 추적 할 때, 나는 많은 수의 자식 프로세스를 본다.bash는 자체 echo, printf, [functions?

#!/bin/bash 

while [ 1 ] 
do 
    echo ..; 
done; 

같은가도 마찬가지입니다 :

strace -ff -o nice.o ./nice.sh 

나는 아래의 스크립트를 실행하면 다른 한편으로 nice.sh

#!/bin/bash 

while /usr/bin/[ 1 ] 
do 
    echo ..; 
done; 

, 나는 어떤 갈래의 자식 프로세스가 표시되지 않습니다 echo,/bin/echo와 printf,/usr/bin/printf. 일부 명령이 bash에 임베드되어 있음을 의미합니까? 그렇다면 다른 명령은 무엇입니까?

+2

'info bash'를 입력하고 'Shell Builtin Commands'섹션으로 이동하거나 [here] (http://www.gnu.org/software/bash/manual/bashref.html#Shell-Builtin-Commands)를 참조하십시오.). 여기에 게시하기 전에 설명서를 참조하십시오. –

+0

대부분의 Bourne 파생 쉘에는 이러한 명령이 내장되어 있습니다. 외부 버전은 쉘을 내장하지 않은 쉘에 유용합니다. 복잡한'find' 나'xargs' 명령에 유용합니다. –

답변

2

예, bash 및 다른 쉘에는 각각 수많은 내장 명령이 있습니다.

Here's bash 용 목록과 각 내장형 설명서가 들어 있습니다.

+1

'$ type [echo printf' '[쉘 내장입니다.] echo는 쉘 내장입니다. printf는 쉘 내장입니다. –

+1

@mertinan :'enable -a'는 모든 builtins를 보여줍니다. 사용할 수 있습니다. 'type -a command'는 커맨드가 우선 순위에 어떻게 정의되어 있는지 보여줍니다. –