소스 비교가 다르게 동작하는 이유는 무엇입니까?

소스 비교가 다르게 동작하는 이유는 무엇입니까?

나는 최근에 그것을 배웠다

. ./.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은 쉘 키워드이며 다음과 같이 사용해야 합니다:sourcefile어디file유효한 쉘 명령이 포함되어 있습니다. 이러한 셸 명령은 명령줄에서 입력한 것처럼 현재 셸에서 실행됩니다. 지금,.file완전히 동일하게 만들어졌습니다.

그렇지 않으면 (" 이 디렉토리에 있음") 또는 ( 와 동일)과 .같이 "현재 작업 디렉토리"를 의미합니다 ../xyzxyza/b/./c/./da/b/c/d

그 외에 파일 이름은 "숨겨진" 파일(실제로는 그렇지 않음) 또는 접미사를 통한 파일 형식(여기 ) 을 의미 .하는 일반적인 의미만 갖습니다 ..foobarfoobar.pdf.pdf

이러한 서로 다른 의미는 서로 바꿔 사용할 수 없습니다.

관련 정보