나는 최근에 그것을 배웠다
. ./.a.a
그리고 ./.a.a
그것은 동일합니다.
하지만 source source .a.a
시도할 때 오류가 발생합니다. IMO는 .
Bash 별칭이 되어 source
다르게 동작해서는 안 되는데, 내가 무엇을 놓치고 있는 걸까요?
보너스, 왜 . .
가능하지만 불가능한가요 source source
?
답변1
다음과 같은 경우에는 .
어디에서나 교체 할 수 없습니다 .source
. ./.a.a
효과적으로 첫 번째 것을 바꿀 수 있습니다 .
(적어도 Bash에서는):
source ./.a.a
두 번째는 .
대체할 수 없는 현재 디렉터리를 나타냅니다 source
(특히 이전과는 다릅니다 ./
) source
.
source source
source
현재 쉘에 적합한 내용으로 현재 디렉토리의 파일을 호출하면 괜찮습니다. 어떻게 . .
좋을지 모르겠네요 ...
. ./.a.a
또한 두 번째 형식은 별도의 셸에서 실행된다는 ./.a.a
점에서 다릅니다 . .a.a
바라보다소싱("." 또는 "source")과 bash에서 파일 실행의 차이점은 무엇입니까?더 알아보기.
답변2
source
은 쉘 키워드이며 다음과 같이 사용해야 합니다:source
file
어디file
유효한 쉘 명령이 포함되어 있습니다. 이러한 셸 명령은 명령줄에서 입력한 것처럼 현재 셸에서 실행됩니다. 지금,.
file
완전히 동일하게 만들어졌습니다.
그렇지 않으면 (" 이 디렉토리에 있음") 또는 ( 와 동일)과 .
같이 "현재 작업 디렉토리"를 의미합니다 ../xyz
xyz
a/b/./c/./d
a/b/c/d
그 외에 파일 이름은 "숨겨진" 파일(실제로는 그렇지 않음) 또는 접미사를 통한 파일 형식(여기 ) 을 의미 .
하는 일반적인 의미만 갖습니다 ..foobar
foobar.pdf
.pdf
이러한 서로 다른 의미는 서로 바꿔 사용할 수 없습니다.