source
명령어: 현재 셸 세션에서 스크립트 파일을 실행합니다. source
를 사용하면 스크립트 내에서 정의된 변수, 함수, 환경 설정 등이 현재 셸에 적용됩니다. 새 셸을 시작하지 않고, 현재 셸의 환경을 변경하거나 업데이트할 때 사용됩니다.
sh
명령어: 새로운 셸을 시작하여 스크립트를 실행합니다. sh
뒤에 스크립트 파일명을 지정하면, 해당 스크립트는 sh
셸(또는 호환 셸)에서 새로운 프로세스로 실행됩니다. 이 경우, 스크립트 실행이 완료된 후 변경된 환경 설정이 현재 셸에는 영향을 미치지 않습니다.
./
명령어: 현재 디렉토리에서 스크립트나 실행 파일을 실행합니다. ./
는 현재 디렉토리를 나타내며, 이를 스크립트나 실행 파일명 앞에 붙여 사용합니다. 이 방식으로 실행할 때는 파일에 실행 권한이 설정되어 있어야 하며, 대부분의 경우 새 셸 프로세스가 아닌 현재 셸의 자식 프로세스로 실행됩니다.
간단히 말하면, source
는 현재 셸 환경에서 스크립트를 실행하여 변경사항을 적용하는 데 사용되며, sh
는 새 셸 프로세스에서 스크립트를 실행합니다. ./
는 현재 디렉토리에 있는 실행 파일이나 스크립트를 실행할 때 사용되며, 이 또한 현재 셸의 자식 프로세스로 실행됩니다.