이 질문에 이미 답변이 있습니다. :
댓글
나쁨 '.
@KennyEvitt가 중복으로 닫는 것은 질문이 나쁘다는 것을 의미하지 않습니다! 이 질문은 여기에 영원히 남아있을 것입니다. 현재 작업 디렉토리를 얻는 방법을 정말로 알고 싶다면 여기에서 답을 찾을 수 있습니다. 변수에 명령의 출력을 저장하는 방법을 알고 싶다면 dupe 링크를 따라 가면 여기에서 답을 찾을 수 있습니다. 어쨌든 이것은 ' 나 혼자서해야 할 일이 아닙니다. 재개해야한다고 강하게 느끼시면 Unix 및 Linux Meta 에서 이러한 문제를 해결해야합니다.
답변
저기 “그럴 필요가 없습니다.”이미 변수에 있습니다 :
$ echo $PWD /home/terdon
PWD
변수는 POSIX에서 정의 하며 모든 POSIX 호환 셸에서 작동합니다.
PWD
셸과 cd 유틸리티에 의해 설정됩니다. 쉘에서 값은 다음과 같이 환경에서 초기화됩니다. PWD 값이 실행될 때 환경의 셸로 전달되는 경우 값은 종료 널 바이트를 포함하여 {PATH_MAX} 바이트 이하인 현재 작업 디렉토리의 절대 경로 이름이며 값에는 다음이 포함되지 않습니다. 점 또는 점-점인 모든 구성 요소는 PWD를 환경의 값으로 설정합니다. 그렇지 않고 PWD 값이 실행될 때 환경의 셸로 전달되면 값은 현재 작업 디렉터리의 절대 경로 이름이고 값에 점 또는 점-점 구성 요소가 포함되지 않은 경우 쉘이 PWD를 환경의 값으로 설정하는지 또는 PWD를 pwd -P에 의해 출력 될 경로 이름으로 설정하는지 여부는 지정되지 않습니다. 그렇지 않으면 sh 유틸리티는 PWD를 pwd -P에 의해 출력되는 경로 이름으로 설정합니다. PWD가 환경의 값으로 설정된 경우 값은 기호 링크 유형의 파일을 참조하는 구성 요소를 포함 할 수 있습니다. PWD가 pwd -P에 의해 출력 될 경로 이름으로 설정된 경우 현재 작업 디렉토리 또는 해당 디렉토리의 상위에 대한 권한이 충분하지 않아 해당 경로 이름이 무엇인지 판별 할 수있는 경우 PWD의 값은 다음과 같습니다. 미지정. 이 변수에 대한 할당은 무시 될 수 있습니다. 응용 프로그램이 PWD 값을 설정하거나 설정 해제하면 cd 및 pwd 유틸리티의 동작이 지정되지 않습니다.
더 일반적인 대답은 명령의 출력을 변수에 저장하는 방법은 명령을 $()
또는 ` `
(백틱)로 묶는 것입니다.
var=$(command)
또는
var=`command`
둘 중 $()
는 command0 $(command1 $(command2 $(command3)))
와 같은 복잡한 명령을 작성하는 것이 더 쉽기 때문에 선호됩니다.
Answer
dir=$(pwd)
백틱 방법보다 이식성이 뛰어나고 선호됩니다.
$()
를 사용하면 명령을 중첩 할 수 있습니다.
예 : mech_pwd=$(pwd; echo in $(hostname))
댓글
Answer
환경 변수 또는 다음과 같이 작성하십시오.
dir=`pwd`
답변
pwd
명령의 출력을 변수에 저장하려면 명령 대체를 사용해야합니다. 명령 대체는 백틱 또는 달러 문자를 사용할 수 있습니다. 다음과 같이 :
$ mkdir "/tmp/new dir" $ cd "/tmp/new dir" $ CWD="$(pwd)" $ echo $CWD /tmp/new dir $ cd ~ $ echo $CWD /tmp/new dir $ pwd /home/ja
Answer
현재 작업 디렉토리의 값은 다릅니다. 심볼릭 링크를 사용하여 현재 디렉토리를 가져온 경우 pwd는 / usr / bin / pwd와 다른 결과를 제공합니다. bash를 사용하고 있으므로 다음을 사용합니다.
dir=$(/usr/bin/pwd)
또는 주석에 따라 :
dir=$(pwd -P)
역 따옴표는 중첩 할 수 없기 때문에 좋아하지 않습니다.
댓글