~에 따르면플라스크 공식 튜토리얼:
이제 프로젝트 작업을 원할 때마다 해당 환경을 활성화하기만 하면 됩니다. OS X 및 Linux에서는 다음을 수행합니다.
$ . venv/bin/activate
이것은 작동합니다. 그러나 ./venv/bin/activate
및 을 모두 실행하려고 하면 venv/bin/activate
둘 다 을 얻습니다 -bash: venv/bin/activate: Permission denied
.
내 질문은: 그것이 무엇을 합니까 .
?
답변1
이 경우 점은 쉘 키워드와 동의어입니다 source
. 이것이 하는 일은 파일을 읽고 마치 명령줄에 직접 입력한 것처럼 각 줄을 실행하는 것입니다. 권한에 관한 한 필요한 것은 파일에 대한 읽기 액세스뿐입니다.
쉘 명령을 사용하여 파일을 얻는 것은 쉘 스크립트를 호출하는 것과 다릅니다. 쉘 스크립트에는 실행 권한이 필요하며(이것이 권한이 거부되는 이유입니다) 자체(비대화형) 쉘을 시작합니다.
답변2
점은 현재 셸에서 스크립트가 실행되고 있음을 나타냅니다. 일반적으로 쉘 스크립트는 서브쉘에서 실행되지만 스크립트를 종료하면 내부적으로 설정된 모든 변수가 손실됩니다. 이 방법(점 포함)은 변수 값, 변경된 디렉터리 등을 보존하는 방법입니다.