weblogic 서버의 설치 패키지를 다운로드했습니다. README에는 다음과 같은 명령을 실행해야 합니다.
Linux/Mac
$ . ./configure.sh
이런 일이 일어나는 것을 본 것은 이번이 처음이 아닙니다. 명령 시작 부분에 추가 점이 있는 이유는 무엇입니까? 그냥 해도 ./configure.sh
결과는 똑같음
답변1
도트( .
)는 파일에서 명령을 실행하기 위한 기호이며 도트에 인수로 제공됩니다. 예를 들어, 이 파일의 내용은 ./configure.sh
현재 셸에서 실행됩니다. 도트 명령은 Bourne 쉘에서 시작되었으며 Bash와 같은 다른 쉘에서도 사용할 수 있습니다.
Bash 매뉴얼 페이지에서
. filename [arguments]
source filename [arguments]
Read and execute commands from filename in the current shell
environment and return the exit status of the last command executed from
filename. If filename does not contain a slash, file names in PATH are used
to find the directory containing filename. The file searched for in PATH
need not be executable. When bash is not in posix mode, the current directory
is searched if no file is found in PATH. If the sourcepath option to the
shopt builtin command is turned off, the PATH is not searched. If any
arguments are supplied, they become the posi‐ tional parameters when filename
is executed. Otherwise the positional parameters are unchanged. The return
status is the status of the last command exited within the script (0 if no
commands are executed), and false if filename is not found or cannot be read.
노트:command 와 같은 다른 셸에는 csh
비슷한 명령이 있으며 source
더 많은 최신 버전이 점 표기법과 명령을 지원합니다 source
. Bash는 실제로 두 가지를 모두 지원합니다.
예
$SOMEVAR
다음은 변수를 정의하는 파일을 가져와서 현재 셸에서 변수를 설정하는 예입니다 .
샘플 파일은 다음과 같습니다.
$ cat test.sh
SOMEVAR="hi"
$SOMEVAR
먼저 변수가 현재 셸에 이미 설정되어 있지 않은지 확인합니다 .
$ echo $SOMEVAR
$
이제 이를 가져와서 설정되었는지 확인합니다.
$ . ./test.sh
$ echo $SOMEVAR
hi
이식성
이 점을 언급해 주신 @ChrisDown에게 감사드립니다. 점( .
)은 POSIX의 일부로 지정되므로 이식 가능하지만 명령은 source
그렇지 않습니다. 여기를 보아라Open Group 기본 사양 7호문서, 섹션: "2. 쉘 명령 언어". 특히 이 섹션.
발췌
이름
포인트 - 현재 환경에서 명령을 실행합니다.
요약
. 문서
설명하다
쉘은 현재 환경에서 파일의 명령을 실행해야 합니다.
파일이 포함되지 않은 경우 쉘은 PATH에 지정된 검색 경로를 사용하여 파일이 포함된 디렉토리를 찾습니다. 그러나 일반 명령 검색과 달리 도트 유틸리티로 검색한 파일은 실행 가능하지 않아도 됩니다. 읽을 수 있는 파일이 없으면 비대화형 쉘이 중단됩니다. 대화형 쉘은 표준 오류에 진단 메시지를 기록해야 하지만 이 경우 구문 오류로 간주되어서는 안 됩니다.