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

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

你可能感兴趣的:(linuxshell)