나는 최근에 내 개인 스크립트를 내 변수 $HOME
에 포함시키기로 결정했습니다. $PATH
그러나 이를 실행하려고 하면 ZSH가 "명령을 찾을 수 없습니다"라고 응답합니다. 다음 줄은 내가 추가한 내용입니다..xprofile
PATH="$PATH:~/.local/share/";export PATH
일부 스크립트가 있지만 ~/.local/share/
ZSH에서는 실행할 수 없지만 bash에서는 잘 작동합니다. 위의 라이브를 내 라이브에 추가하려고 시도했지만 .zshrc
작동하지 않았습니다.
답변1
~
변수가 아니며 변수처럼 동작하지 않습니다.
~
쉘은 일반적으로 인용할 때 확장되지 않습니다. 쉘의 특수한 물결표 문자 처리에 의존하지 않고 홈 디렉토리에 대한 올바른 경로를 얻기 위해 모든 쉘에서 $HOME
대체를 사용할 수 있습니다(대화식 쉘에서 주로 사용되는 바로가기).~
$HOME
하다이는 변수가 작동할 것으로 예상하는 대로 작동합니다. 즉, 큰따옴표로 묶으면 홈 디렉토리 경로로 확장됩니다.
또한 그럴 가능성이 낮다는 점도 참고하세요 PATH
.아니요이미 환경 변수입니다. 따라서 내보낼 필요가 없습니다.
zsh
셸 에서 ~/.local/share
명령 검색 경로 끝에 추가하려면 다음을 수행할 수도 있습니다.
path+=~/.local/share
또는
path+=$HOME/.local/share
배열 변수 path
는묶음스칼라 변수에 추가됩니다 PATH
. 즉, 위와 같이 배열을 업데이트하면 path
추가된 요소가 value 끝에 추가됩니다 $PATH
.
답변2
ZSH 시작 스크립트는 ~/.zshrc
및 입니다 ~/.zshenv
. 저는 보통 전역 환경 변수 PATH
를 ~/.zshenv
.
시작 스크립트의 일부 다른 지시문은 귀하의 지시문을 덮어쓰거나 대체할 수 있습니다 PATH
. zsh 시작 중에 어떤 일이 발생하는지 확인하려면 다음을 실행하세요.
zsh -x 2>&1 </dev/null |grep PATH
스크립트를 시작해도 이미 실행 중인 쉘에는 영향을 주지 않습니다. 이를 업데이트하려면:
- 예를 들어 스크립트를 얻으십시오.
. ~/.zshenv
exec zsh -l
zsh( ) 재실행- 로그아웃했다가 다시 로그인하세요.