"내장" bash 명령은 어떻게 정의됩니까?

"내장" bash 명령은 어떻게 정의됩니까?

나는 like 명령이 cd ..실제로 변환되어 builtin cd ..실행되는 것을 발견했습니다. 그런데 어떻게 builtin정의되나요? which builtin아무것도 표시하지 않고 등에 없습니다 /bin. /usr/binbash 프로그램의 일부일 뿐이고 다르게 처리됩니까?

답변1

내장은 bash의 일부일뿐입니다. 를 사용하여 명령이 내장되어 있는지 확인할 수 있습니다 type. 예를 들어:

$ type export cd source alias
export is a shell builtin
cd is a shell builtin
source is a shell builtin
alias is a shell builtin

많은 내장 명령은 다른 방법으로는 작동할 수 없기 때문에 내장되어 있습니다. cd그리고 source예입니다.

다른 내장 기능은 단지 효율성을 위해 내장되어 있습니다. test(AKA [...])는 echo예입니다.

자세한 내용은 SHELL BUILTIN COMMANDS섹션 man bash또는 온라인을 참조하세요.배쉬 매뉴얼. 사용 가능한 내장 기능 목록을 얻으려면 help명령 프롬프트에서 실행하세요. 특정 내장 기능에 대한 정보를 얻으려면 를 test실행하십시오 help test. help testbash의 내장 기능에 대한 정보를 제공하는 반면 test, man test외부 test명령에 대한 도움말을 제공할 가능성이 높습니다.

실행 가능하고 내장된 명령으로 사용할 수 있는 명령은 무엇입니까?

-a옵션 을 사용하면 type명명된 명령이 포함된 모든 위치가 표시됩니다. 예를 들어:

$ type -a echo
echo is a shell builtin
echo is /bin/echo

내장 기능을 사용할 수 있는 경우 실행 파일을 사용하는 방법

이상한 이유로 쉘 내장이 아닌 특정 실행 파일을 사용하려는 경우 경로를 지정하기만 하면 됩니다.

$ /bin/echo "This is not the builtin"
This is not the builtin

내장 기능에는 일반적으로 더 많은 기능이 있으므로 이는 일반적으로 호환성 테스트에만 유용합니다.

함수나 별칭에 의해 숨겨진 쉘 내장을 실행하는 방법

선택이 주어지면 쉘은 일반적으로 내장 명령을 실행하도록 선택합니다. 사용자가 동일한 이름의 별칭이나 함수를 정의한 경우는 예외입니다. 내장된 기능이 실행되고 있는지 확인하려면 다음 builtin명령을 사용하십시오.

$ builtin echo  1 2 3
1 2 3

관련 정보