Mac 下默认是没有 /etc/profile.d 文件夹的 ,这里参考 CentOS 的做法,把 /etc/profile 文件中的内容拆分到 /etc/profile.d 文件夹中,便于分类和管理

profile.d 遍历脚本

  • 创建 /etc/profile.d 文件夹
  • 把以下脚本放在 /etc/profile 文件的末尾 保存
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
# /etc/profile.d 文件存在 && 是目录
if [ -d /etc/profile.d ]; then
    # 遍历 /etc/profile.d/ 下的所有 .sh 文件
    for i in /etc/profile.d/*.sh ; do
        # 如果文件可读
        if [ -r "$i" ]; then
            # 非交互式脚本
            if [ "${-#*i}" != "$-" ]; then
                . "$i"
            else
                . "$i" >/dev/null 2>&1
            fi
        fi
    done
fi

test.sh 测试效果

  • 创建 /etc/profile.d/test.sh 文件,增加以下内容
  • 重新打开 终端 测试效果,成功的话会输出
1
echo "/etc/profile.d/test.sh"

一些示例

alias.sh

1
2
alias ll='ls -l'
alias lla='ls -al'

java_home.sh

1
2
3
4
5
6
export JAVA_7_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/
export JAVA_9_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.9.jdk/Contents/Home/

export JAVA_HOME=$JAVA_8_HOME
export PATH="$PATH:$JAVA_HOME/bin"

Read More