zoukankan      html  css  js  c++  java
  • source sh运行脚本的差别

    主要有两种方式运行shell脚本

    1)source test.bsh

    2)sh test.bsh


    1)souce运行脚本文件会在父程序中运行。各项动作都会在原本的bash内生效。运行过程不另开进程。脚本文件里设定的变量在当前shell中能够看到;

    例如以下样例:


    当中sh文件内容例如以下:


    就是通过read命令从命令行中读取两个字符串firstname和lastname,作为一个完整的人名最后在屏幕上输出。source运行该文本文件时正确输出,source还能够用“.”直接替换

    source运行文件能够这样理解:


    2)sh运行脚本文件是在当前进程另开子进程来运行脚本命令,脚本文件里设定的变量在当前shell中不能看到。使用这样的运行方式时,事实上script实在子程序的bash中运行的,当子程序完毕之后,子程序内的各项变量或者动作将会结束而不会传回到父程序中。对照第一张图我们能够得到以下的结果:


    当sh文件运行完成之后。子程序bash中的全部数据便被移除。

    能够这样理解

    "./"运行结果和sh运行结果同样。

    值得注意的是:一般当我们想要让某些写入~/.bashrc(如环境变量)生效的时候,都须要注销系统,又一次开启服务,当我们不注销系统就想要使写入生效的时候,我们就能够使用source ~/.bashrc而不是使用sh ~/.bashrc.




  • 相关阅读:
    杭电1466------简单的dp
    hdu2037-----------贪心, 活动安排问题
    两个钟表问题。
    杭电HDU1042(有点坑的高精度)
    hd1496---->这道题是水水的数论吗?
    LightOJ::1077 -----奇妙的最大公约数
    并查集练兵场
    欧拉函数
    位运算---水题
    矩阵快速幂
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7259332.html
Copyright © 2011-2022 走看看