当前位置: 首页 > Linux

shell脚本在当前终端添加环境变量的正确姿势

时间:2023-04-06 04:00:44 Linux

在Linux中,我们经常需要设置一些环境变量。设置环境变量的方式有很多种,有的对当前用户有效,有的对所有用户有效,还有一些是永久的。很多时候我们都有这样的需求,只要设置的环境变量在当前终端生效,退出终端后就不会影响其他程序的运行。一般可以使用export命令设置写入环境,比如设置动态库加载路径exportLD_LIBRARY_PATH=./lib。如果需要配置的环境变量比较多,或者每次做某项工作前都必须配置这些环境变量,这时候手动输入命令就很不方便,需要shell脚本。我们可以将配置命令写到shell脚本中,这样只需要执行脚本就可以完成工作。程序员的原则是,脚本能做到的事情,永远不要去做。写好脚本set_env.sh后,我们愉快的在当前终端执行了./set_env.sh,但是发现设置并没有生效,用export命令查看也没有看到新的配置。关键原因是通过./set_env.sh执行脚本文件时,脚本中的命令实际上是在子shell中运行的,执行结果只对子shell有效,对父shell无效。这种情况下正确的姿势是使用sourceset_env.sh,这样设置的环境变量就会在当前终端生效。source命令的作用是在当前bash终端下读取并执行shell文件中的命令。一个更简单的命令是.set_env.sh,点命令(.)和source是等价的。