cat /etc/profile.d/atlassian-plugin-sdk.sh
export PATH=$PATH:/opt/atlassian/plugin-sdk/bin
ls -al /etc/profile.d/atlassian-plugin-sdk.sh
-rwxr-xr-x 1 root root 48 Apr 17 21:36 /etc/profile.d/atlassian-plugin-sdk.sh
ls -al /opt/atlassian/plugin-sdk/bin
total 408
drwxr-xr-x 2 root root 4096 Apr 17 21:37 .
drwxr-xr-x 5 root root 4096 Apr 17 21:37 ..
-rwxr-xr-x 1 root root 3534 Apr 17 21:36 atlas-clean
-rwxr-xr-x 1 root root 3506 Apr 17 21:36 atlas-compile
-rwxr-xr-x 1 root root 8460 Apr 17 21:36 atlas-create-bamboo-plugin
-rwxr-xr-x 1 root root 5985 Apr 17 21:36 atlas-create-bamboo-plugin-module
.................................
이 스크립트는 어떻게
/etc/profile.d/atlassian-plugin-sdk.sh
작동하나요? 그렇게 불러야 하나?매번 수동으로? 아니면 시스템이 어떤 식으로든 이를 촉발하는 걸까요?어쨌든 터미널에는 파일이
/opt/atlassian/plugin-sdk/bin
표시 되지 않습니다.PATH
그러나
/etc/profile.d/atlassian-plugin-sdk.sh
수동으로 여러 번 호출한 후에도 아무 변화가 없습니다.echo $PATH ........... (`/opt/atlassian/plugin-sdk/bin` isn't here)
왜? 뭐가 문제 야?
업데이트 1:
zsh
실제로 bash 대신 bash를 사용하고 있습니다 . 그러나 이후
sudo cp /etc/profile.d/atlassian-plugin-sdk.sh /etc/profile.d/atlassian-plugin-sdk.zsh
쉘을 다시 시작한 후에도 아무것도 변경되지 않았습니다. 디렉토리가 여전히 /opt/atlassian/plugin-sdk/bin
추가되지 않았습니다.PATH
답변1
의 스크립트는 /etc/profile.d/
일반적으로 /etc/profile
Bourne 쉘(예: sh, bash)에 로그인할 때 가져옵니다. 를 보면 /etc/profile
다음과 같은 내용을 볼 수 있습니다(내 데비안 시스템의 /etc/profile에서 복사됨):
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
.sh
그러면 /etc/profile.d/에 있는 모든 파일이 현재 쉘의 컨텍스트에서 실행되고 영향을 받을 수 있도록 됩니다 .
zsh
/etc/profile은 기본적으로 실행되지 않으므로( 호환성을 sh
확인 man zsh
하고 검색하지 않는 한) /etc/profile.d/의 스크립트도 실행되지 않습니다. 원하는 경우 편집하고 소싱할 수 있지만 /etc/zsh/profile
zsh는 정확히 sh가 아닙니다. 대부분 호환되지만 (/etc/profile.d/에 있는 내용에 따라) 이상하고 예상치 못한 측면 효과가 있을 수 있습니다.
원하는 경우 atlassian 디렉터리를 PATH에 추가하는 것이 더 쉬울 수 있고, ~/.zshrc
zsh를 실행하는 모든 사용자에게 적용하려면 .zsh에 추가하는 것이 더 쉬울 수 있습니다. 시작 파일 중 하나가 더 쉬울 수 있습니다 /etc/zsh
.