답변:
당신은 source당신의 스크립트에 필요합니다 . 그렇지 않은 경우 별도의 서브 쉘에서 실행되며 서브 쉘의 작업 디렉토리는 변경하지만 실행하는 쉘은 변경하지 않습니다.
그것을 소싱하려면 :
. myfile.sh
또는
source myfile.sh
exec bash마지막에bash 스크립트는 현재 환경이나 하위 환경에서 작동하지만 부모 환경에서는 작동하지 않습니다.
그러나 다른 디렉토리에서 bash 스크립트를 실행 한 후 특정 디렉토리의 bash 프롬프트에 남아 있기를 원하기 때문에이 질문이 종종 제기됩니다.
이 경우 스크립트 끝에서 자식 bash 인스턴스를 실행하십시오.
#!/bin/bash
cd /home/user/somedir
exec bash