介绍

在Linux系统中,我们常需要配置环境变量甚至执行命令,比如,在 /etc/profile 中的 PATH;
在~/.bash_profile 中的 alias。

本文意在介绍不同的文件中命令的执行时机和作用范围。

文件种类

在Linux内核系统中,起相似作用的文件共分为:

  • /etc/profile

  • /etc/bashrc(在Ubuntu系统中为/etc/bash.bashrc)

  • ~/.bash_profile

  • ~/.bashrc

分析

File Name Login New bash
/etc/profile true false
/etc/bashrc true true
~/.bash_profile true false
~/.bashrc true true

扩展

export

  • 申明变量时,不加export只能在本shell文件内引用;加上export后,在本文件执行的所有shell中均可引用。

a.sh:

#!/bin/bash

echo ----- a.sh -----

A=1
export B=2

echo A=$A
echo B=$B


sh ./b.sh

b.sh:

#!/bin/bash

echo ----- b.sh -----

echo A=$A
echo B=$B

sh c.sh

c.sh:

#!/bin/bash

echo ----- c.sh -----

echo A=$A
echo B=$B

        在 a.sh 中申明 A B 两个变量,其中 B 变量使用了 export。b.sh 和 c.sh 仅仅是打印 A B 变量。打印结果如下:

[root@886d89b1d8b4:/tmp# ./a.sh  
----- a.sh -----
A=1
B=2
----- b.sh -----
A=
B=2
----- c.sh -----
A=
B=2

总结:使用 export 申明变量可在 bash 打开的所有 bash 中引用。


chadLi
55 声望2 粉丝