자동으로 얻은 쉘 스크립트를 /etc/profile에 작성하는 방법

자동으로 얻은 쉘 스크립트를 /etc/profile에 작성하는 방법

로그인 시 bash가 /etc/profile에 있는 파일을 자동으로 가져온다는 소식을 들었습니다.

/etc/profile에 간단한 내용을 작성해 보았습니다.

 echo "echo 'foo'" > /etc/profile/foo.sh

그런데 다음과 같은 이상한 오류가 발생합니다.

bash: /etc/profile/foo.sh: Not a directory

올바른 방법이 있나요?

답변1

/etc/profile파일입니다. 따라서 생성하려고 하면 오류가 발생합니다 /etc/profile/foo.sh.

/etc/profile.d당신이 고려하고 있는 디렉토리입니다. 거기에 있는 스크립트는 로그인 시 가져옵니다. 귀하의 예에서는 /etc/profile.d/foo.sh.

아래에서 그 뒤에 있는 스크립트 논리와 도입 방법을 볼 수 있습니다. 유사한 코드가 /etc/profile, /etc/bashrc/etc/csh.cshrc에 있습니다 /etc/csh.login.

$ grep -A 8 ^for.*profile.d /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
$

이러한 스크립트를 생성하고 호출하는 예:

# echo id >/etc/profile.d/foo.sh
# su - steve
Last login: Sat Jun 23 21:44:41 UTC 2018 on pts/0
uid=1000(steve) gid=1001(steve) groups=1001(steve),4(adm),39(video),1000(google-sudoers) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
$

더 많은 정보를 원하시면 방문해주세요/etc/profile.d의 스크립트는 무엇을 합니까?

관련 정보