2012-11-07 4 views
68

내가하려는 것은 export PATH=$PATH:currentdir+somethingelse을 실행할 수 있도록 현재 작업 디렉토리를 찾아서 변수에 저장하는 것입니다. : 기본적으로 cwd를 포함하는 변수가 있는지 확실하지 않습니다.Bash : 현재 디렉토리 변수

+0

'.' 점 작동해야합니다. – mcalex

+0

변수에 저장하려면 mydir =을 사용하십시오. ? –

+0

예. mydir =로 테스트되었습니다. 그러면 ls $ mydir -하지만 상대 경로이므로 어디서든지 실행할 수 있습니다. – mcalex

답변

116

이 변수 cwd 현재 작업 디렉토리의 절대 경로 저장 : 귀하의 경우에는

cwd=$(pwd) 

을 당신은 다만 수하십시오 상대 답변

export PATH=$PATH:$(pwd)+somethingelse 
+1

을 다른 이유로 변경하면 'cwd' 변수도 업데이트됩니다. 매번'pwd' 함수를 호출하는 것처럼 ... https://dpaste.de/Kn7F 어떻게 피할 수 있습니까? – tutuca

+0

'$ CWD'는 쉘에있는 특별한 (예약 된) 환경 변수 일 수 있습니다. '$ CWD_MY_VAR'와 같은 다른 이름을 사용해보십시오 –

+0

그냥 자리 표시 자 이름이었습니다. 내 변수는 'OLD_PWD'라고합니다 ... – tutuca

3

.를 사용

테스트 :

$ myDir=. 
$ ls $myDir 
$ cd/
$ ls $myDir 

첫 번째 ls은 현재 디렉토리의 모든 것을 보여주고 두 번째는 루트 디렉토리 (/)의 모든 것을 보여줍니다.

3

과제가있는 $ 추가 :

export PATH=$PATH:${PWD}:/foo/bar 
1

또 하나의 변형 :

export PATH=$PATH:\`pwd`:/foo/bar 
16

나는 내 .bash_profile에 다음 사항이 있습니다

function mark { 
    export $1=`pwd`; 
} 

그래서 언제든지 내가 원하는 디렉토리를 기억해두기 만하면된다. 여기에 표시. 내가 다시 그 위치로 이동하고자 할 때

그럼, 그냥 거기 CD를 $를 입력

+0

잘 작동하지만 공백이있는 경로 (예 : "Google Drive"당신은 전체 경로를 읽을'''cd "$ foo"''를해야합니다. – mercergeoinfo

+2

경로의 공백 문제를 해결하려면'''export $ 1 ='pwd'''' '''''cd $ foo'' 대신에'''''foo "''를 사용하면됩니다. – mercergeoinfo

+0

이것은 훌륭합니다! –

0

이 같은 변수 PWD에 빌드 쉘을 사용할 수 있습니다

export PATH=$PATH:$PWD+somethingelse