그래서 저는 Bash에 대해 잘 모르지만 이 문제 때문에 당황했습니다. 이 switchto
기능은 명령줄에서 프로젝트 사이를 쉽게 이동할 수 있는 방법을 제공합니다.
source ~/.profile
export PATH=~/bin:$PATH
export PATH=~/.composer/vendor/bin:$PATH
alias composer="php /usr/local/bin/composer.phar"
switchto () (
cd "~/Projects/$1.com/wp-content/themes/$1"
)
나에게는 모든 것이 옳은 것 같지만, 실행하면 항상 다음과 같이 표시됩니다 switchto example
.
-bash: cd: ~/Projects/example.com/wp-content/themes/example: No such file or directory
디렉토리가 실제로 존재하는지 다시 확인했습니다. 나는 bash를 처음 접했기 때문에 이것이 내가 잘못하고 있는 간단한 일인지 잘 모르겠습니다.
답변1
인용된 경우 물결표는 ~
홈 디렉토리로 확장되지 않습니다.
https://www.gnu.org/software/bash/manual/html_node/Tilde-Expansion.html
Tilde Expansion
단어가 인용되지 않은 물결표(
~
)로 시작하는 경우 인용되지 않은 첫 번째 슬래시까지의 모든 문자(또는 인용되지 않은 슬래시가 없는 경우 모든 문자)가 고려됩니다.물결표 접두사. 물결표 접두사에 문자가 인용되지 않은 경우 물결표 접두사에서 물결표 뒤에 오는 문자는 가능한 문자로 간주됩니다.로그인 이름. 이 로그인 이름이 빈 문자열인 경우 물결표는 쉘 변수의 값으로 대체됩니다HOME
. 설정하지 않으면HOME
쉘을 실행하는 사용자의 홈 디렉토리가 대체됩니다. 그렇지 않으면 물결표 접두사가 지정된 로그인과 연결된 홈 디렉터리로 대체됩니다.
따라서 (중괄호와 함께) 다음을 사용할 수 있습니다.
switchto () {
cd ~/"Projects/$1.com/wp-content/themes/$1"
}
PATH
두 가지 정의를 다음과 결합할 수 있습니다 .
export PATH=~/bin:~/.composer/vendor/bin:$PATH