zoukankan      html  css  js  c++  java
  • linux source命令学习

    1. linux source命令的作用?
    我们可能经常需要修改到诸如/etc/profile,~/.bash_profile等这样的配置文件,
    一方面我们希望所作的修改在当前的环境中立即生效;
    另一方面也希望所作的修改可以保存起来,以便于下次系统重新系统时仍然有效,
    这时使用先在~/.bash_profile这样的配置文件中修改好,再source ~/.bash_profile即可。
    如果直接使用export在当前shell环境下修改,其缺点是重新启动系统后修改会丢失;
    如果你修改了配置文件,再重新启动系统以便让更改生效,显得太麻烦了。
    source ~/.bash_profile与. ~/.bash_profile是等效的,所以source命令又称为点命令。

    2. source ~/.bash_profile != sh ~/.bash_profile,为什么?
    sh-# type source
    source is a shell builtin
    原因是source是linux builtin command,所以source ~/.bash_profile会在当前shell下执行;
    而sh ~/.bash_profile会创建一个child process(sub shell)去执行,所以环境变量的更改设置
    只会影响到sub shell。
    通过实验来进行验证,写一个source_test.sh的script,
    #!/bin/sh
    export PATH=$PATH:/my_home
    echo "$PATH"
    在执行source_test.sh这个script前后分别用echo $PATH来查看path,会发现没有区别;
    而如果source ./source_test.sh就会发现改动的$PATH在当前shell环境下生效了,
    这验证了上述分析是正确的。

  • 相关阅读:
    asp.net mvc controller调用js
    无刷新文件上传 利用iframe实现
    Git使用
    easyui扩展
    Highcharts 多个Y轴动态刷新数据
    Android之Handler
    asp.net mvc之TempData、ViewData、ViewBag
    android之滑屏的实现
    java多线程系类:JUC线程池:05之线程池原理(四)(转)
    java多线程系类:JUC线程池:04之线程池原理(三)(转)
  • 原文地址:https://www.cnblogs.com/james1207/p/3327714.html
Copyright © 2011-2022 走看看