首页 > 系统相关 >shell 脚本的5种执行方式比较

shell 脚本的5种执行方式比较

时间:2023-07-27 18:44:43浏览次数:45  
标签:脚本 解释器 shell 方式 shebang 执行 bash

方式1:直接运行
方式2:使用命令 sh 或 bash
方式3:使用命令 source 或 .

分类:

  1. 是否需要执行权限
    只有方式1需要执行权限。这是因为方式1把脚本作为可执行文件,自然需要执行权限,但方式2和方式3都是把脚本作为命令的参数,可以不具备执行权限

  2. 是否会创建子进程
    只有方式3不会创建子进程,会直接在当前shell环境中执行(主要区别在于变量的作用域,父子进程变量的继承关系)

采用何种解释器执行脚本?
在脚本文件的第一行可以添加shebang(也称为hashbang)行,指定要用于解释和执行该脚本的解释器
在方式2中,sh命令和bash命令并不受shebang行的影响,sh命令则使用sh解释器,bash命令使用bash解释器
在方式1和3中,添加了shebang行则按照shebang指定的解释器执行,若未添加,则使用系统默认的解释器(根据环境变量$SHELL)来执行脚本

标签:脚本,解释器,shell,方式,shebang,执行,bash
From: https://www.cnblogs.com/hongyugao/p/17585771.html

相关文章

  • vue-router钩子执行顺序
    Vue的路由在执行跳转时,根据源码可知,调用了router中定义的navigate函数functionpush(to:RouteLocationRaw){returnpushWithRedirect(to)}functionreplace(to:RouteLocationRaw){returnpush(assign(locationAsObject(to),{replace:true}))}functionpush......
  • 一键hook脚本原理
    1.第一个知识点:原型链先拿平时大家最经常hook document.cookie来举个例子。Object.defineProperty(document,”cookie”,{get:function(){},set:function(){}});然后我们需要自己去实现里面的代码逻辑而这个代码又有一个问题。事实上cookie是不在document对象下的Obj......
  • docker run 修改运行的脚本
    DockerRun:修改运行的脚本在使用Docker部署应用程序时,我们经常需要在容器启动时执行一些特定的脚本。Docker提供了dockerrun命令,允许我们修改容器运行时要执行的脚本。本文将介绍如何使用dockerrun命令来修改容器的启动脚本,并提供相应的代码示例。DockerRun命令简介......
  • PowerShell 获取win 电脑磁盘信息
    $physicalDrives=Get-WmiObjectWin32_DiskDrive$totalPhysicalStorageSize=$physicalDrives|Measure-Object-PropertySize-Sum|Select-Object-ExpandPropertySum$physicalDrivesInfo=$physicalDrives|ForEach-Object{$sizeGB=[math]::Round($_.......
  • python使用多进程multiprocessing执行报错
        inthemainmodule:      if__name__=='__main__':        freeze_support()        ...    The"freeze_support()"linecanbeomittediftheprogram    isnotgoingtobefrozentop......
  • 一个请求到达后端,会按照什么顺序执行过滤,验证,执行请求。
    请求到达后端后,NioEndPoint对象(他提供socket接受线程、轮询socket线程、Worker线程池),在轮询中发现一个请求过来,新建一个socket接收线程SocketProcessorBase并绑定请求,一直到请求执行完毕才释放。此接收线程放在Worker线程池里,等待执行。当执行线程时,dorun的过程中调用了invoke(r......
  • c#定时执行方事件
    c#定时执行这个是毫米级,一毫秒执行一次这是从plc1ms执行一次这个方法,获得数据,画在图上毫秒级,这么设置是1ms执行一次......
  • windchill 当点击可视化提示“您的权限不足,无法执行此操作,不进行发布操作”时如何解决
    如图情况:解决办法如图:......
  • INNOVUS批量摆放cell array的脚本
    说明:invs_place_cell_array-prefix$prefix-libcell$libcell-hornum$hornum-vernum$vernum-startX$startX-startY$startY-spaceX$spaceX-spaceY$spaceY-orientation$orientation,类似于ICC2中create_cell_array的用法procinvs_place_cell_array{args}{ ......
  • java 调用shell脚本如何传数据进去
    Java调用Shell脚本传递数据的方案在Java程序中调用Shell脚本可以很方便地实现与底层系统交互的功能。但是,如果我们需要将数据传递给Shell脚本进行处理,就需要找到一种合适的方法来实现。本文将介绍一种实用的方法来解决这个问题。方案概述Java程序通过Runtime类的exec方法可以调......