Bash를 사용하여 현재 디렉토리를 변수에 저장 하시겠습니까?


111

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

Bash를 사용하여 현재 디렉토리를 변수에 어떻게 저장합니까?


그래서 변수에 저장하려면 mydir =을 수행합니다. ?
Stupid.Fat.Cat 2011

1
yup 방금 mydir =로 테스트했습니다. 그런 다음 ls $
mydir-

감사! 이것이 저에게 효과가 있기를 바랍니다
Stupid.Fat.Cat

오, 공간이 좀 있었어요. tt $ {PWD}가 작동 했어야합니다. ㅋ. ...
웁스

답변:


188

이렇게하면 현재 작업 디렉토리의 절대 경로가 변수에 저장됩니다 cwd.

cwd=$(pwd)

귀하의 경우 다음과 같이 할 수 있습니다.

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

1
어떤 이유로 내가 다른 디렉토리로 변경하면 cwd변수도 업데이트 됩니다. pwd매번 함수를 호출하는 것처럼 ... dpaste.de/Kn7F 어떻게 피할 수 있습니까?
tutuca 2013

1
$CWD셸에서 특수 (예약 된) 환경 변수 일 수 있습니다. 대신 다른 이름을 입력하십시오.$CWD_MY_VAR
sampson-chen 2013

백틱을 사용하는 것도 동일합니다.
tutuca 2013

1
왜 그냥 사용하지 "$PWD"않습니까?
leetbacoon

28

.bash_profile에 다음이 있습니다.

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

그래서 언제든지 디렉토리를 기억하고 싶을 때, 예를 들어 mark there를 입력하면 됩니다.

그런 다음 해당 위치로 돌아가려면 cd $ there를 입력합니다.


잘 작동하지만, 공백 경로에 대한, 예를 들어 "구글 드라이브"당신은해야 할 cd "$foo"읽을 수 있도록 전체 경로
mercergeoinfo

3
경로 변경에 공백이 문제를 해결하기 위해 export $1=`pwd` export $1="`pwd`" 같은 경로를 사용하여 호출 할 때 다음과 cd "$foo"단지 대신cd $foo
mercergeoinfo

mercergeoinfo : 엄밀히 말하면 따옴표 export $1="`pwd`"는 필요하지 않습니다. 왜냐하면 확장 인용은 습관으로 익숙해지기에는 좋지만 할당의 오른쪽에서 단어 분리가 발생하지 않기 때문입니다.
Larry

2
cdable_vars그냥 입력 참조cd there
John Cummings

4

귀하의 과제에는 추가 $사항이 있습니다.

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

3

A의 상대 대답, 사용.

테스트 :

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

첫 번째 ls는 현재 디렉토리의 모든 것을 표시하고 두 번째는 루트 디렉토리 ( /)의 모든 것을 표시합니다 .


1

현재 작업 디렉토리 변수 즉, 전체 경로 / home / dev / other

dir=$PWD

전체 경로 인쇄

echo $dir

0

하나 더 변형 :

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

0

다음 PWD과 같이 셸 빌드 내 변수를 사용할 수 있습니다 .

export PATH=$PATH:$PWD+somethingelse
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.