스크립트 /etc/profile.d/{script1}.sh가 제대로 작동하지 않습니다.

스크립트 /etc/profile.d/{script1}.sh가 제대로 작동하지 않습니다.
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
.................................
  1. 이 스크립트는 어떻게 /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)
    
  2. 왜? 뭐가 문제 야?

업데이트 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/profileBourne 쉘(예: 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/profilezsh는 정확히 sh가 아닙니다. 대부분 호환되지만 (/etc/profile.d/에 있는 내용에 따라) 이상하고 예상치 못한 측면 효과가 있을 수 있습니다.

원하는 경우 atlassian 디렉터리를 PATH에 추가하는 것이 더 쉬울 수 있고, ~/.zshrczsh를 실행하는 모든 사용자에게 적용하려면 .zsh에 추가하는 것이 더 쉬울 수 있습니다. 시작 파일 중 하나가 더 쉬울 수 있습니다 /etc/zsh.

관련 정보