내 cd.txt에서 변수를 어떻게 $BASE
사용할 수 있습니까? 다음을 시도했지만 오류가 발생했습니다.
$ cd ~/z/repo_1_ruby_193/
23:23:57 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193
$ BASE="~/z"
23:24:03 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193
$ cd $BASE/repo_1_ruby_193
-bash: cd: ~/z/repo_1_ruby_193: No such file or directory
23:24:25 durrantm Castle2012 /home/durrantm/z/repo_1_ruby_193
답변1
cd ~/z/
사용하기 전에물결표 확장~
홈 디렉터리로 확장합니다 . 에서는 문자 BASE="~/z"
를 인용했기 때문에 ~
확장되지 않았습니다. 이것이 ~
디렉토리가 존재하지 않는다는 메시지를 받는 이유입니다 . 해결책은 이를 참조하지 않는 것입니다. 즉, BASE=~/z
확장이 발생하도록 하기 위한 것입니다.
답변2
@jw013 님이 유효한 설명과 해결책을 제시했습니다.
그러나 경로에 공백이나 특수 기호가 여러 개 포함되어 있는 경우와 같이 경로를 인용하고 싶은 경우가 있을 수 있습니다. 이 경우 $HOME
대신 을 사용해야 합니다 ~
. 즉, 물결표 확장과 달리 매개변수 대체가 큰따옴표로 해석되므로 BASE="~/z"
가 BASE="$HOME/z"
되어 제대로 작동합니다.