Watanabe 쉘에는 세 가지 종류의 내장 기능이 있으며 설명서에 자세히 설명되어 있습니다. 모든 내장 명령도 여기에 나열되어 있지만 명령이 "특별"또는 "반 특별"이라는 메모 가 없으면 "정규"내장 명령이라고 추론해야합니다. 내장. 일반 내장은 표시되어 있지 않습니다.
printf
"정규적인"내장 기능 중 하나입니다. 기본 모드에서는 해당 이름으로 찾은 외부 명령이 있는지 여부에 관계없이 항상 호출됩니다.
$ 경로 = / usr / bin
$ printf
printf :이 명령에는 피연산자가 필요합니다
$ 유형 printf
printf : / usr / bin / printf의 일반 내장
$
$ 경로 = /
$ printf
printf :이 명령에는 피연산자가 필요합니다
$ 유형 printf
printf : 일반 내장 ($ PATH에 없음)
$
그러나 posixly-correct
쉘 옵션이 설정되면 외부 명령이에서 찾을 수있는 경우에만 내장 옵션입니다 PATH
.
$ set-정확하게 수정
$
$ 경로 = / usr / bin
$ printf
printf :이 명령에는 피연산자가 필요합니다
$
$ 경로 = /
$ printf
yash : 그런 명령은 없다`printf '
$
이것은 실제로 Single Unix Specifiation의 말과 일치하며 적어도 1997 년 이래로 말한 바 있습니다.
Z 쉘, 93 Korn 쉘, Bourne Again 쉘 및 Debian Almquist 쉘과는 다르며, 일반적인 빌트인에 대해서는 이러한 동작을 구현하거나 문서화하지 않습니다. 는 Z 쉘은, 예를 들어, 문서는 정기적으로 내장 기능이 있는지 항상 발견 하기 전에 검색하는 단계 PATH
. Debian Almquist 쉘도 마찬가지입니다. 그리고 이것이 sh
POS (on-on-POSIX) 옵션과 같이 호출 되더라도 이러한 쉘이 모두 수행하는 작업 입니다.
% / bin / exec -a sh zsh -c "PATH = /; type printf; printf"
printf는 쉘 내장
zsh : printf : 1 : 인수가 충분하지 않습니다
% / bin / exec -a sh ksh93 -c "PATH = /; type printf; printf"
printf는 쉘 내장
사용법 : printf [옵션] 형식 [문자열 ...]
% / bin / exec -a sh bash --posix -c "PATH = / type printf; printf"
printf는 쉘 내장
printf : 사용법 : printf [-v var] 형식 [인수]
% / bin / exec -a sh dash -c "PATH = /; type printf; printf"
printf는 쉘 내장
sh : 1 : printf : 사용법 : printf 형식 [arg ...]
%
그러나 printf
켜져 있지 않으면 PATH
PD Korn 쉘, Heirloom Bourne 쉘 및 MirBSD Korn 쉘의 동작 이 실행 되지 않습니다 . printf
처음부터 내장되어 있지 않기 때문 입니다. ☺
% / bin / exec -a sh`명령 -v ksh` -c "PATH = /; type printf; printf"
printf를 찾을 수 없습니다
sh : printf : 찾을 수 없음
% / bin / exec -a sh`명령 -v oksh` -c "PATH = /; type printf; printf"
printf를 찾을 수 없습니다
sh : printf : 찾을 수 없음
% / bin / exec -a sh`명령 -v jsh` -c "PATH = /; type printf; printf"
printf를 찾을 수 없습니다
sh : printf : 찾을 수 없음
% / bin / exec -a sh mksh -c "PATH = /; type printf; printf"
printf를 찾을 수 없습니다
sh : printf : 찾을 수 없음
% ksh -c "type printf; printf"
printf는 / usr / bin / printf의 추적 별명입니다.
사용법 : printf 형식 [인수 ...]
% oksh -c "type printf; printf"
printf는 / usr / bin / printf의 추적 별명입니다.
사용법 : printf 형식 [인수 ...]
% jsh -c "type printf; printf"
printf가 해시됩니다 (/ usr / bin / printf)
사용법 : printf 형식 [인수 ...]
% mksh -c "type printf; printf"
printf는 / usr / bin / printf의 추적 별명입니다.
사용법 : printf 형식 [인수 ...]
$
PATH
순서에 정규 내장 처형 될 수 있습니다. 그런 다음 질문을하십시오.