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.




  • 相关阅读:
    POJ 3667 & HDU 3308 & HDU 3397 线段树的区间合并
    HDU 5992 kd-tree
    BZOJ 4154 kd-tree dfs序 + 二维空间的区间(矩阵)更新单点查找
    BZOJ 4066 kd-tree 矩形询问求和
    BZOJ 1941 kd-tree
    BZOJ 2648 kd-tree模板
    HDU 5925 离散化
    php trait
    php命名空间
    js
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7259332.html
Copyright © 2011-2022 走看看