Centos7이 /etc/profile 및 /etc/bashrc에서 /etc/profile.d 스크립트를 실행하는 이유는 무엇입니까?

Centos7이 /etc/profile 및 /etc/bashrc에서 /etc/profile.d 스크립트를 실행하는 이유는 무엇입니까?

Centos7에는 다음이 있습니다 /etc/profile.

for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null
        fi
    fi
done

그리고 다음 /etc/bashrc( running 에서 ~/.bashrc):

    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null
            fi
        fi
    done

데비안과 우분투는 이것을 에서만 실행하는데 /etc/profile, 이것이 제가 기대하는 것입니다.

  • Centos가 두 가지 모두에서 실행하는 이유는 무엇입니까?
  • 왜 차이가 있나요 sh.local?

답변1

첫 번째 문제에 대해서는 잘 모르겠지만 그 이유는 Debian 기반 쉘이 호출될 때 기본적으로 Red Hat 기반 쉘보다 sh"더 멍청하게" 동작하기 때문이라고 생각합니다 .bashsh

이것빨간 모자 오류이는 sh.localSA 보장을 위한 것임을 설명합니다.모든 것다른 것들은 에서 발견되었습니다 /etc/profile.d.

관련 정보