스크립트를 사용하여 디렉토리를 변경하는 방법


10

이 스크립트가 있습니다

#!/bin/bash
cd /home/user/somedir
pwd

예상대로 작동하지만이 스크립트를 사용하여 / home / user / somedir로 전송하고 싶지만 동일한 디렉토리에 남아 있습니다.

나를 (gnome-terminal) / home / user / somedir로 이동시키는 스크립트를 작성하는 방법은 무엇입니까?


답변:


14

당신은 source당신의 스크립트에 필요합니다 . 그렇지 않은 경우 별도의 서브 쉘에서 실행되며 서브 쉘의 작업 디렉토리는 변경하지만 실행하는 쉘은 변경하지 않습니다.

그것을 소싱하려면 :

. myfile.sh

또는

source myfile.sh

자세한 내용은 여기를 참조 하십시오


나는 단지 그것을 추가하려고했습니다 ... Uadadapter 만약 당신이 sh myfile.sh 또는 ./myfile.sh와 같은 shelll 스크립트를 실행한다면 그것은 danjil 설명대로 실행될 것입니다. danjil의 옵션 중 하나가 당신을 위해 작동합니다.
itnet7

3

사용 exec bash마지막에

bash 스크립트는 현재 환경이나 하위 환경에서 작동하지만 부모 환경에서는 작동하지 않습니다.

그러나 다른 디렉토리에서 bash 스크립트를 실행 한 후 특정 디렉토리의 bash 프롬프트에 남아 있기를 원하기 때문에이 질문이 종종 제기됩니다.

이 경우 스크립트 끝에서 자식 bash 인스턴스를 실행하십시오.

#!/bin/bash
cd /home/user/somedir
exec bash
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.