CD는 쉘에서는 작동하지만 스크립트에서는 작동하지 않습니다.

CD는 쉘에서는 작동하지만 스크립트에서는 작동하지 않습니다.

특정 긴 디렉터리 경로 cd에서 시작 해야 하는 경우가 많습니다 . $HOME그래서 더 빨리 도착하려면 $HOME에 CD스크립트를 넣어야겠다고 생각했습니다.

CD 스크립트:

#!/bin/sh
directory="/some/big/long directory path/that/I/use/frequently"
cd "$directory"

권한 설정: chmod 700 cdscript

./cdscript아무것도 하지 않았습니다. 내가 무엇을 놓치고 있나요? (예, 경로에 해당 공백이 존재하며 셸에서 정확한 별도의 줄을 성공적으로 복사하여 붙여넣을 수 있으므로 경로도 존재합니다.) 또한 위의 스크립트 대신 디렉터리에 대한 심볼릭 링크를 만든 다음 연결하는 것이 cdUnixey에 더 적합하지 않습니까 ?

답변1

그냥 하는 중

./cdscript

불가능한. 기본적으로 새 쉘을 포크하고 거기에 CD를 넣으면 쉘(및 새 작업 디렉토리)이 종료됩니다.

당신은 사용해야합니다

. ./cdscript

(맨 앞에 점과 공백이 있음)

첫 번째 점은 ./cdscript내가 입력한 대로 실행을 의미합니다. 그렇다면 두 번째 점이 필요합니다. 변수 에는 없습니다 PATH.

답변2

셸에서 이에 대한 별칭을 만드는 것이 좋습니다. 예를 들어, .bashrc다음을 입력할 수 있습니다.

alias cdscript='cd /really/long/file/path/'

답변3

스크립트는 현재 작업 디렉터리를 변경하지만 종료 시 복원합니다. 타이핑하는 대신

cdscript 

들어가려고 노력하다

 . cdscript

원하는 결과를 얻으려면 스크립트를 실행하십시오.

관련 정보