主要有两种方式运行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.

source sh运行脚本的差别的更多相关文章

  1. 使用sh运行bash脚本的奇怪问题

    在同一个文件夹下有两个脚本.a.sh和b.sh,脚本内容例如以下: a.sh: echo "test for a" source b.sh b.sh: echo "tes ...

  2. [Shell Script]关于source和sh对于脚本执行不同

    当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行 ...

  3. [转] 用source命令执行脚本和用sh执行脚本之间的区别

    from: http://blog.csdn.net/david_xtd/article/details/8012627 问题: 有很多方式可以执行脚本, 1).source test.bsh 2). ...

  4. 让SH/BAT脚本定位到运行目录的相对位置,实现其脚本可在任意运行目录下被正确执行

    让SH/BAT脚本定位到运行目录的相对位置 实现其脚本可在任意运行目录下被正确执行 在Linux下的bash脚本 #!/bin/bash cd `` 在Windows下的BAT脚本 echo off ...

  5. 18.4 运行脚本 sudo ./launcher.sh 必须先给他权限 才能使用

    我们发现我们每次启动服务都要打一大堆命令,ng build --watch ,nodemon server.js ,等等 凡是重复的工作,我们要可以代码完成 要想运行它呢 你必须将你运行的上述(脚本中 ...

  6. Linux Source命令及脚本的执行方式解析

    转 http://www.51testing.com/html/38/225738-206878.html 当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用sou ...

  7. Linux下的Source命令及脚本的执行方式解析

    Linux Source命令及脚本的执行方式解析 http://blog.csdn.net/wangyangkobe/article/details/6595143 当我修改了/etc/profile ...

  8. Oracle12c中多宿主容器数据库(CDBs)和可插拔数据库(PDBs)新特性之运行脚本

    对开发者和DBA们来说,对shell脚本批量任务的影响成了多宿主选项带来的最大改变之一.因为多宿主环境通过服务来连接到可插拔数据库,因此,依靠CRON和OS认证成了换成多宿主环境后的一个最大问题.本文 ...

  9. Linux Source命令及脚本的执行方式解析(转)

    当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录:这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行 ...

随机推荐

  1. ios控件渐变色的处理

    +(CAGradientLayer *)gradientColorWithBounds:(CGRect)bounds startColorHexString:(NSString *)startColo ...

  2. Codeforces Round #445 D. Restoration of string【字符串】

    D. Restoration of string time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  3. Ngnix 安装常见错误的处理

    错误:   解决方案:(联网下) 出现上面的问题是由于没有c++编译器造成 # yum -y install gcc-c++   使用上面的命令即可安装c++解决问题 如果确实c编译器,使用如下命令解 ...

  4. bmi健康指数

    #!/usr/bin/python # -*- coding: utf-8 -*- #小明身高1.75,体重80.5kg.请根据BMI公式(体重除以身高的平方) #帮小明计算他的BMI指数,并根据BM ...

  5. 数据挖掘算法之k-means算法

    系列文章:数据挖掘算法之决策树算法       k-means算法可以说是数据挖掘中十大经典算法之一了,属于无监督的学习.该算法由此衍生出了很多类k-means算法,比如k中心点等等,在数据挖掘领域, ...

  6. [给自己扫盲]名词解释——LAMP、MEAN、Web应用框架等

    名词解释 LAMP The LAMP software bundle (here additionally with Squid). A high performance and high-avail ...

  7. android在Service中弹出Dialog对话框,即全局性对话框

    先说具体做法,原因在其后给出: 写好Alter功能块后,在alter.show()语句前加入: alert.getWindow().setType(WindowManager.LayoutParams ...

  8. jquery 纯JS设置select下拉框,并默认选中第一个

    //html页面<select id="payWay" class="easyui-combobox" name="payWay" s ...

  9. hdu2846 Repository

    //--------------------------------------------------------------- /*---字典树应用问题.考虑到要查询的次数在10^6,显然直接插入 ...

  10. 怎样从server获取图片

    今天写了安卓程序与server通信.当中须要从server获取图片.本来以为下载流.处理文件流非常复杂.结果几句话就轻松搞定了.如今记在这里. // (2014.5.1第一种方法)通过server返回 ...