本文主要介绍 export/exec/source/.函数的使用
1. linux 登陆时候的 shell
linux 系统登陆时候的 shell 是一个进程。在这个进程中运行其它 shell 脚本,则会开启新的进程。 在新的进程中运行的 shell,其变量是没有没有办法被父进程(当前 shell)直接读取的。这时候可以用 export 或者 source 的方式来读取。
source
会在当前进程运行脚本,而不是新开一个。
一般修改环境变量之后,如修改~/.bashrc
之后,需要运行source ~/.bashrc
来使得其中的环境变量生效。
而在~/.bashrc
中添加环境变量的方式就是export VAR=value
。
实际上,source
命令又可以用点.
来代替。
2. exec 命令
那么exec
又是什么?exec
是另外一条命令。
exec 执行完成之后,就会退出当前 shell。
使用sh
或者bash
执行的方式,则会新开一个线程,在新的线程中执行。
使用source
或者.
的方式,则不会新开线程。只是在当前线程中从上往下执行代码。
如果去网上搜索 linux shell exec,很容易找到 exec 函数族的信息。区别就是 exec 函数族介绍的是 exec 这一类可以用在 c++中的代码。而不是讲的 linux 的命令,虽然他们之间有千丝万缕的联系。
3. export
使用 export 命令时候,则可以将子进程中的变量,让父进程也能访问到。
总结
本文介绍了shell中的三个函数的使用: source/. 会在当前进程中执行命令;exec会在新的进程中执行命令;export用于扩展变量。