cd와 함께 wsl에서 bash 스크립트를 사용하려고 시도했지만 아무것도 수행하지 않습니다.

cd와 함께 wsl에서 bash 스크립트를 사용하려고 시도했지만 아무것도 수행하지 않습니다.

nano에서 Desktop.sh로 저장하는 wsl의 bash 스크립트를 학습하기 위해 다음 스크립트를 만들었습니다.

#!/bin/bash 
cd /mnt/c/Users/myusername/Onedrive/Desktop

내가 쉘에 있을 때 bash Desktop.sh를 입력하세요.

아무 반응이 없습니다

어떤 조언이라도 도움이 될 것입니다.

답변1

명령으로 호출한 스크립트는 bash Desktop.sh완벽하게 작동했지만 아무런 효과도 볼 수 없습니다.

왜?

스크립트가 서브쉘에서 실행되기 때문입니다.

스크립트를 실행하면 bash Desktop.sh서브셸이 시작되고 서브셸 내에서 모든 명령이 실행됩니다. 따라서 현재 디렉토리는 서브쉘에서 변경되며 서브쉘에서만 변경됩니다. 스크립트가 중지되면 아무것도 변경되지 않은 셸로 돌아갑니다. 스크립트를 실행 가능하게 만든 경우에도 마찬가지입니다. 경로 이름을 입력하여 스크립트를 실행합니다. 이 경우 shebang( #!/bin/bash)을 읽어 어떤 쉘을 로드할지 결정합니다.

에게보다cd효과를 사용하려면 대신 에 명령 을 수행해야 합니다.현재의껍데기. 당신은 그렇게 할 수 있습니다소싱스크립트:

source Desktop.sh

또는 바로가기 표기법을 사용하면 다음과 같습니다.

. Desktop.sh

이제 프롬프트에 스크립트의 명령을 직접 입력한 것과 같은 효과가 나타납니다.

관련 정보