Shell脚本的执行方式:

注明:wd代表“脚本保存的目录”

1.fork
语法:/wd/shell.sh
fork是最普通的, 就是直接在脚本里面用/wd/shell.sh来调用shell.sh这个脚本.运行的时候开一个子shell执行调用的脚本,子shell执行的时候, 父shell还在。子shell执行完毕后返回父shell。子shell从父shell继承环境变量.但是子shell中的环境变量不会带回父 shell

2.exec
语法: exec /wd/shell.sh
exec与fork不同,不需要新开一个sub-shell来执行被调用的脚本. 被调用的脚本与父脚本在同一个shell内执行。但是使用exec调用一个新脚本以后, 父脚本中exec行之后的内容就不会再执行了。这是exec和source的区别。

3.source
语法:source /wd/shell.sh
与fork的区别是不新开一个子shell来执行被调用的脚本,而是在同一个shell中执行。所以被调用的脚本中声明的变量和环境变量, 都可以在主脚本中得到和使用。

4.()
语法:( 语句;语句;语句;…… )
圆括号中命令列表的命令将会运行在一个子shell中。

比如:
$ (cd ..;ls -l)
cd ..命令改变的是子Shell的PWD,而不会影响到交互式Shell。
然而命令
$ cd ..;ls -l
则有不同的效果,cd ..命令是直接在交互式Shell下执行的,改变交互式Shell的PWD,然
而这种方式相当于这样执行Shell脚本:
$ source ./script.sh
或者
$ . ./script.sh

source或者.命令是Shell的内建命令,这种方式也不会创建子Shell,而是直接在交互式Shell下逐行执行脚本中的命令。

source命令、.命令
语法: . filename [arguments]
    source filename [arguments]
作用:
当在命令 行中调用的时候, 这个命令将会执行一个脚本. 当在脚本中调用的时候, source file-name 将会加载file-name文件, 或者 . (点命令)一个文件将会在脚本中引入代码, 并将这些代码附加到脚本中(与C语言中的#include指令效果相同). 最终的结果就像是在使用"source"的行上插入了相应文件的内容.
在多个脚本需要引用相同的数据, 或者需要使用函数库的情况下, 这个命令非常有用.

5.{}
{语句;语句;……}不会启动子SHELL。

转载于:https://www.cnblogs.com/tangdoudou/p/3384186.html

『SHELL』--SHELL脚本执行方式(转)相关推荐

  1. shell简介和脚本执行方式

    shell简介和脚本执行方式 1.shell简介 Shell是命令解释器(command interpreter),是Unix操作系统的用户接口,程序从用户接口得到输入信息,shell将用户程序及其输 ...

  2. Linux Shell编程之脚本执行方式

    1.新建bash脚本文件 打开命令终端 touch hello.sh vim hello.sh 2.编辑bash文件 #!/bin/bash # this is a test programerech ...

  3. shell脚本执行方式,更方便更快捷。

    在进行linux测试时编写脚本是必不可少的.最近经常使用Linux,感觉太频繁地敲击键盘有些累了,于是想到了Shell脚本.可以把太多的命令写成一个脚本,这样每次执行一遍  shell文件,就可以省去 ...

  4. hive脚本执行方式

    2019独角兽企业重金招聘Python工程师标准>>> 1. hive脚本的执行方式 hive脚本的执行方式大致有三种:  1. hive控制台执行:  2. hive -e &qu ...

  5. linux脚本无法执行命令,为什么Shell脚本执行不成功?原来是这样

    Shell脚本语言是linux系统中内置的一门非常强大的语言,非常善于处理操作系统层面的应用,我们从网上下载的很多应用的安装和启动往往都是用Shell脚本语言写的.可是初步开始使用linux的小伙伴是 ...

  6. 什么是shell,shell基础由浅入深,常用的shell命令、用法、技巧

    Shell:可以批量处理.自动化完成一系列维护任务,大大减轻管理员的负担!Shell是一个特殊的应用程序,介于操作系统内核与用户之间,充当了一个"命令解释器"的角色.负责接收用户输 ...

  7. shell脚本的执行方式及区别

    1.利用直接执行(sh/bash或./)的方式来执行脚本. 2.利用source(或 .)来执行脚本. 这两种方式如果从执行结果来看,并没有什么区别. 下面看个例子: cat name.sh #!/b ...

  8. linux shell脚本的执行方式与区别

    linux shell脚本的执行方式与区别

  9. Shell脚本编程之(三)执行方式差异(source, sh script, ./script)

    利用直接方式或bash执行 该 脚本 都会使用一个新的 bash 环境来执行脚本内的指令!也就是说,使用这种执行方式时, 其实 script 是在子程序的 bash 内执行的 知识点 当子程序完成后, ...

最新文章

  1. debian宝塔界面安装php失败,宝塔面板安装遇到的问题
  2. leetCode题解之反转二叉树
  3. mongodb+java_Java EE + MongoDb与Apache TomEE和Jongo Starter项目
  4. 一个完美网站的101项指标.第一部分.概述
  5. www(apache)服务器的基本设置
  6. python程序代码图片_完整的图片去噪代码(python)
  7. linux中df和ls区别,linux系统文件大小ls、df、du命令的区别
  8. 我的设计模型之适配器模式
  9. 构建第一个fabric网络
  10. Springboot项目启动的三种方式
  11. py3Fdfs 修复几个bug
  12. 配置svn忽略 node_modules等文件
  13. word2016 删除页眉横线
  14. 关于打开CMD窗口一闪而退的解决方法
  15. vue 数组元素替换_解决vue数组中对象属性变化页面不渲染问题
  16. linux终端模拟器
  17. 【计算视觉】理解图像中基本概念:色调、色相、饱和度、对比度、亮度
  18. 删除容器docker rm和强制删除容器docker rm -f
  19. mysql查询使用空间_mysql 如何察看数据库空间及日志空间使用情况
  20. 离散冲激函数matlab,表示信号系统的matlab函数工具箱.doc

热门文章

  1. js == 和 ===
  2. gets scanf以及缓冲区域的问题
  3. UVa 1393 (容斥原理、GCD) Highways
  4. daily scrum 11.1
  5. SQL语句获取数据库名、所有表名、所有字段名及字段类型
  6. .NET : 动态生成工作流定义文件并且进行编译
  7. 世界级投资大师们的至理名言
  8. php协议任意文件读取
  9. Guava中针对集合的 filter和过滤功能
  10. thinkphp3.2 验证码生成和点击刷新验证码