0°

.bash_*files的执行顺序

下列文件的执行顺序是什么?

o   /etc/profile
o   ~/.bash_profile
o   ~/.bashrc
o   ~/.bash_login
o   ~/.profile
o   ~/.bash_logout

交互式登录shell的执行顺序

下面的伪代码将说明这些文件的执行顺序

execute /etc/profile
IF ~/.bash_profile exists THEN
    execute ~/.bash_profile
ELSE
    IF ~/.bash_login exist THEN
        execute ~/.bash_login
    ELSE
        IF ~/.profile exist THEN
            execute ~/.profile
        END IF
    END IF
END IF

当你从交互式shell中注销,以下是执行顺序:

IF ~/.bash_logout exists THEN
    execute ~/.bash_logout
END IF

请注意/etc/bashrc是通过~/.bashrc执行,如下所示:

# cat ~/.bashrc
if [ -f /etc/bashrc ]; then
. /etc/bashrc
Fi

非登录交互式shell的执行顺序

当你启动一个非登录交互式shell,下面是执行顺序

IF ~/.bashrc exists THEN
    execute ~/.bashrc
END IF

[注意:当一个非交互式shell启动,它会寻找环境变量ENV,并执行环境变量ENV里的文件名变量。]

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论