편집하다:실제로 별칭이 아닙니다(답변 참조).
우리 모두 알고 있듯이 쉘에서 도트 명령( .
)은 소스 명령의 별칭입니다.
그런데 이렇게 이상한 별명 뒤에 숨은 이유가 있는지 궁금합니다. 당연히 자주 사용하지 않기 때문에 이렇게 짧은 별칭이 필요합니다.
그렇다면 점을 추가하는 이유는 무엇입니까? 또는 와 source
같이 더 일반적으로 사용되는 명령 대신 왜 필요한가요 ? 별칭이 왜 필요한가요? 이것 뒤에 타당한 이유가 있습니까? 아니면 역사적인 이유가 있나요?cd
ls
노트:이 질문은 원래 서버 오류에 게시했지만 여기에 게시하자는 제안을 받았습니다.
답변1
.
~이다POSIX 표준.
source
bash의 내장 동의어이며 .
다음과 다릅니다..
또한 Bash 참조 매뉴얼에는 다음이 .
나열되어 있습니다.4.1 Bourne Shell 내장 기능source
아래 병치4.2 Bash 내장 명령처럼:
동의어. (Bourne Shell 내장 기능 참조)
source
아마도 C 셸(명령이 파생된 것으로 보이는)에서 bash라고 부르기 때문에 이름이 bash로 지정된 것 같습니다 .
답변2
Bash에 관한 한 둘 중 하나의 별칭이 .
아니며 source
둘 다 동일한 기본 함수를 호출하는 내장 함수라는 것은 단순한 사실입니다 source_builtin
.
source.def
Bash 소스 코드의 파일을 살펴보세요 .
$PRODUCES source.c
$BUILTIN source
$FUNCTION source_builtin
$SHORT_DOC source filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
$END
$BUILTIN .
$DOCNAME dot
$FUNCTION source_builtin
$SHORT_DOC . filename [arguments]
Execute commands from a file in the current shell.
Read and execute commands from FILENAME in the current shell. The
entries in $PATH are used to find the directory containing FILENAME.
If any ARGUMENTS are supplied, they become the positional parameters
when FILENAME is executed.
Exit Status:
Returns the status of the last command executed in FILENAME; fails if
FILENAME cannot be read.
$END
인용하다
답변3
도트 명령은 아마도 1976년 Bourne Shell에 의해 도입되었을 것입니다.
source 명령은 1977년 또는 1978년에 csh에 의해 도입되었습니다.
따라서 "발명품"은 별칭 관계가 없고 동시에 두 개의 서로 다른 이름을 가지고 있습니다.
cd
참고: 이름이 왜 그런 식으로 지정되었는지 말씀드릴 수 있습니다 . 이 명령은 이전에 호출되었지만 chdir
1974년에 출시된 110 보드 모뎀에 비해 너무 길고 입력 속도가 느렸습니다...