.은 무슨 뜻인가요? /path/command`는 무엇을 합니까? (점 뒤의 공백, 절대 경로)

.은 무슨 뜻인가요? /path/command`는 무엇을 합니까? (점 뒤의 공백, 절대 경로)

~에서이 Bash 완료 가이드Bash가 자동 완성을 수행하려면 다음을 실행해야 한다는 것을 배웠습니다 . /etc/etc/bash_completion.d/foobar.이후 공간에 주목.) Bash가 작업을 수행할 수 있도록 합니다.

$ /etc/bash_completion.d/ssh
bash: /etc/bash_completion.d/ssh: Permission denied
$ . /etc/bash_completion.d/ssh
$ ls -l /etc/bash_completion.d | grep ssh
-rw-r--r-- 1 root root   297 Jan 28 18:04 ssh

명령 .에 대한 단축키 입니까 source?그렇지 않다면 무엇입니까? Google 검색이 불가능하고, man source아무것도 반환하지 않으며, 내가 찾고 있는 것이 거기에 있는지 알 수 없을 정도로 관련 없는 정보를 너무 많이 apropos source제공합니다 .info source이 질문에 대한 답을 직접 찾기 위해 RTFM을 시작하려면 어떻게 해야 합니까?

답변1

.기능과 동일 합니다 source.

늘 그렇듯이 첫 번째 참고자료는 다음과 같습니다.man bash매뉴얼 페이지에서 다음을 검색하여 초기 추측을 확인할 수 있습니다./ source

...또는 소스를 사용하여 실행되는 쉘 함수 또는 스크립트 ....

첫 번째 참조이지만 더 나아가 섹션을 찾을 수 있습니다.쉘 내장 명령

. filename [arguments]
source filename [arguments]
현재 쉘 환경에서 filename의 명령을 읽고 실행하고, filename에서 마지막으로 실행된 명령의 종료 상태를 반환합니다. 파일 이름에 슬래시가 포함되어 있지 않으면 PATH의 파일 이름을 사용하여 파일 이름이 포함된 디렉터리를 찾습니다. PATH에서 검색된 파일은 실행 가능하지 않아도 됩니다. Bash가 posix 모드가 아닌 경우 PATH에서 파일을 찾을 수 없으면 현재 디렉터리를 검색합니다. shopt 내장 명령의 sourcepath 옵션이 꺼지면 PATH가 검색되지 않습니다. 인수가 제공되면 filename이 실행될 때 위치 인수가 됩니다. 그렇지 않으면 위치 매개변수는 변경되지 않고 그대로 유지됩니다. 반환 상태는 스크립트의 마지막 종료 명령 상태(명령이 실행되지 않은 경우 0)이고, 파일 이름을 찾을 수 없거나 읽을 수 없는 경우 false입니다.

실제로 이것은 bash가 내장되어 있기 때문에 소스 코드에 자체 매뉴얼 페이지가 없으며 이것이 바로 실패하는 이유입니다.

답변2

귀하의 간단한 답변:

  1. . absolute_path/mycommand 원천mycommand디렉토리의 스크립트 파일 absolute_path/. 추가 참조를 위해여기를 읽어보세요
  2. .그리고 source동등합니다.
  3. 필요하시면 문의해주세요help나 에게 bash shell. 내장된 명령에 대한 답변을 얻을 수 있습니다.

몇 마디 더 말해 보세요
종종 가장 간단한 방법은 가장 파악하기 어려운 방법이기도 합니다. 우리는 질문할 수 없다고 생각합니다.help도착하다껍데기명령이 내부적으로 정의된 경우.
그러면 우리는 그것이 다음과 같다는 것을 알 수 있습니다 type ..type source내장주문하다.

Hastur@Cthulhu:~> type . source  
. is a shell builtin  
source is a shell builtin

일단 그것을 알게 되면, help우리는 그들에 대한 정보를 빠르게 얻을 수 있습니다. 프롬프트에 매개변수가 없는 명령은
다음을 제공합니다.help

GNU 배쉬, 버전 4.1.2(1)...
이러한 셸 명령은 내부적으로 정의됩니다..
유형help이 목록을 확인하세요. help name이 기능에 대해 자세히 알아보려면 입력하세요.이름. 쉘에 대한 보다 일반적인 정보를
보려면 이 목록에 포함되지 않은 명령에 대한 자세한 정보를 찾으려면 정보'를 사용하십시오 .info bash
man -k' or

당신 help .help source같은 것을 얻습니다정확히 똑같다돕다:

source: 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.

"누군가가 단순히 표현하지 않는 한 우리는 이것을 결코 볼 수 없다는 것이 분명합니다."지브란

답변3

점 "."은 현재 쉘 컨텍스트의 파일 이름 매개변수에서 명령을 읽고 실행한다는 의미입니다. 소스 코드와 동일합니다. 이 스타일은 Bourne Shell에서 나왔습니다. http://ss64.com/bash/source.html

관련 정보