一个脚本测试系统环境变量配置文件的启动顺序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个脚本测试系统环境变量配置文件的启动顺序相关的知识,希望对你有一定的参考价值。

我们都知道CentOS系统中有四个定义环境变量的配置文件,分别是/etc/profile和/etc/bashrc以及家目录下的~/.bashrc和~/.bash_profile,那么我们系统启动时是以什么顺序来读取这些环境变量配置文件的呢?

对于这个问题我们可以写一个脚本来测试:

#!/bin/bash

##############################################################

# File Name: shift.sh

# Version: V1.0

# Author: li qian

# Organization: 

# Created Time : 2017-10-28 15:21:08

# Description:

##############################################################

rm -f /tmp/shijian

until [ $# -eq 0 ]

do

sed -i ‘/^echo.*shijian/d‘ "$1"

sed -i "1i echo ${1}1 $\(date +%T%N\) >> /tmp/shijian" "$1"

sed -i "\$a echo ${1}2 $\(date +%T%N\) >> /tmp/shijian" "$1"

shift

done

reboot

[[email protected]_2 ~]# sh /server/scripts/shift.sh /etc/profile /etc/bashrc /root/.bashrc /root/.bash_profile 

执行完脚本,系统会自动重启,然后我们会在/tmp目录下的shijian文件看到我们要的结果

[[email protected]_2 ~]# cat /tmp/shijian

/etc/profile1 15:42:52818124419

/etc/profile2 15:42:53809866251

/root/.bash_profile1 15:42:53887264247

/root/.bashrc1 15:42:53971852375

/etc/bashrc1 15:42:54069565295

/etc/bashrc2 15:42:54118786824

/root/.bashrc2 15:42:54185749478

/root/.bash_profile2 15:42:54237113170

结论:系统在启动时加载环境变量配置文件的顺序是/etc/profile-->~/.bash_profile-->~/.bashrc-->/etc/bashrc,同时我们也发现了在加载这些文件的同时还会调用其他文件,所以我们在定义全局环境变量和局部环境变量时最好分别在统一在一个文件(例如全局统一在/etc/profile局部统一在~/.bash_profile或~/.bashrc)中定义,否则会有覆盖的风险!

本文出自 “11361161” 博客,请务必保留此出处http://11371161.blog.51cto.com/11361161/1977042

以上是关于一个脚本测试系统环境变量配置文件的启动顺序的主要内容,如果未能解决你的问题,请参考以下文章

Linux环境变量配置文件以及启动顺序

mac上java环境变量配置

SylixOS启动读取配置文件

从启动脚本分析mysql读取my.cnf配置的顺序

MAC环境变量的配置小笔记

postgresql在linux下的的开机自启动服务与环境变量的配置