sh의 소스 대체
환경 변수를 설정해야합니다. 일반적으로
source script.sh
그러나 지금은 부팅 프로세스 중에 자동화하고 있으며 기본적으로 sh
셸을 사용 하는 루트 부팅처럼 보입니다 . 이 스크립트를 sh
어떻게 소싱 합니까?
점 명령 ' .
'은 C 쉘 (및 Bash) source
명령 과 동일합니다 . POSIX (참조 dot
)에 의해 지정되고 Bourne 및 Korn 쉘 (및 zsh
, 나는 믿습니다)에서 지원합니다.
. somefile
쉘은를 사용하여 파일을 $PATH
찾지 만 파일은 실행 가능하지 않고 읽을 수만 있어야합니다.
아래 설명에서 언급했듯이 파일의 상대 또는 절대 경로 이름을 지정할 수 있습니다. 슬래시가 포함 된 이름은를 사용하여 검색되지 않습니다 $PATH
. 그래서:
. /some/where/somefile
. some/where/somefile
. ./somefile
모든 찾기 위해 사용될 수있다 somefile
(당신이 바꿀 수 있다면이 세 가지 특정 위치에 존재하는 경우 .
에 ls -l
나열된 파일 참조).
세계의 발판이 단결! 예, 현재 디렉토리는, 루트 디렉토리의 경우 /some/where/somefile
와 ./some/where/somefile
같은 파일을 참조 것 - 역할을, 심지어 기호 또는 하드 링크,없는 (그래서 것 - 같은 실제 경로 ../../some/where/somefile
).
tl; dr 와 sh
(과 반대 bash
) 인수에는 source ./script.sh
,뿐만 아니라 슬래시 :가 포함되어야합니다 source script.sh
. script.sh
에서 찾을 수 없는 경우 PATH
.
Dot ( .
) 명령은 bash
및 sh
. 또한 bash
별칭을 source
. 에서 bash
수동 :
https://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html#index-source
출처
source filename
의 동의어입니다
.
(Bourne Shell Builtins 참조).
https://www.gnu.org/software/bash/manual/html_node/Bourne-Shell-Builtins.html#index-_002e
. (마침표)
. filename [arguments]
filename
현재 셸 컨텍스트 의 인수에서 명령을 읽고 실행합니다 . 경우filename
슬래시를 포함하지 않는의PATH
변수는 파일 이름을 찾는 데 사용됩니다. Bash가 POSIX 모드filename
가 아닌 경우 에서 찾을 수없는 경우 현재 디렉터리를 검색합니다$PATH
.
에서 POSIX :
이
file
포함되지 않은 경우 쉘은에 지정된 검색 경로를 사용하여PATH
파일이 포함 된 디렉토리를 찾습니다. 그러나 일반 명령 검색과 달리 도트 유틸리티로 검색 한 파일은 실행 가능할 필요가 없습니다.
참고 URL : https://stackoverflow.com/questions/4732200/replacement-for-source-in-sh
'Development Tip' 카테고리의 다른 글
동적 할당없이 런타임에 배열 크기가 허용됩니까? (0) | 2020.12.12 |
---|---|
WPF 컨트롤에 대한 Binding.Mode = Default의 기본값은 무엇입니까? (0) | 2020.12.12 |
C # 6 보간 된 문자열을 사용하여 double 형식을 지정하는 방법은 무엇입니까? (0) | 2020.12.11 |
쿼리 문자열 앞에 슬래시를 건너 뛰어도됩니까? (0) | 2020.12.11 |
Ruby에서 "$"문자는 무엇을 의미합니까? (0) | 2020.12.11 |