“source”와“.”의 차이점은 무엇입니까?


147

와 스크립트 (예 / 일부 / 스크립트)을 실행 사이의 차이가 무엇입니까 source /some/script. /some/script배쉬에서는?

답변:


134

sourceBash.동의어입니다 .

명령이 단순히 동의어이고 더 이상 없는지 확인하려는 사람은 소스 코드 , 버전 4.3을 확인하고 파일을 검사하십시오 builtins/source.def. 당신은 내장 명령의 두 것을 읽을 것입니다 source., 매우 동일한 기능을 사용합니다 source_builtin.


이것은 어디에 정의되어 있습니까? 내 말은. 소스의 별칭입니까 아니면 다른 것입니까?
binW

정확히 같은 것

12
@binW : .고대의 본 쉘에서 상속 된 전통적인 소스 명령입니다. source.가독성이 높기 때문에 ( .와 같은 작은 글꼴로 찾기가 어려울 수 있음) 아마 와 정확히 동일한 bash 내장입니다 . 당신은 볼 수 help sourcehelp .같은 정보를 보여줍니다.
geirha

3
@binW : man bash검색 한 다음 검색 source하면 source filename [arguments]의 동의어 임을 알 수 있습니다 . filename [arguments].
Matthew Rankin

46

.sourcebash에서는 동의어 이지만 POSIX sh에서는 아닙니다. .스크립트가 / bin / sh에 의해 실행되는 경우 사용해야 합니다. bash는 / bin / sh로 호출 될 때 POSIX sh처럼 실행된다고 주장하지만 source불만없이 받아들 입니다.

이 동작은 나를 물었습니다. 예를 들어 ash에서 / bin / sh로 bash로 테스트 한 스크립트는 실패합니다.


16
POSIX는 쉘을 제한하지 않습니다. POSIX는 말합니다. 쉘은 최소한이 기능과 해당 기능을 지원해야합니다. 따라서 POSIX 쉘은 POSIX에서 설명한 기능이 구현되는 한 추가 기능을 자유롭게 구현할 수 있습니다. shebang #!/bin/sh에서 쉘이 POSIX 기능 이외의 것을 지원한다고 가정해서는 안됩니다. pubs.opengroup.org/onlinepubs/9699919799/utilities/…
geirha

이름을 찾는 순서에 영향을받을 수 있습니다 : unix.stackexchange.com/q/17815/8250
Lekensteyn

3
sh가 종종 cron에서 사용되기 때문에이 답변이 도움이되었습니다.
dfrankow
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.