我的编程空间,编程开发者的网络收藏夹
学习永远不晚

shell脚本5种执行方式及脚本不同的执行方法和区别详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

shell脚本5种执行方式及脚本不同的执行方法和区别详解

目录
  • 前言
  • 概述
  • 正题
    • 一、方式1绝对路径和方式2相对路径,可以归纳为同一种方法
    • 二、方式3使用 sh/bash命令来执行
    • 三、方式4使用 . (空格)脚本名称来执行
    • 四、方式5使用 source 来执行(主要用于生效配置文件)
  • 区别
    • 1.关于执行权限
    • 2.关于是否开启子shell线程
  • 总结 

    前言

    shell脚本是一种脚本语言,他不需要编译,而是直接通过解释器,将脚本作为解释器程序的参数运行的。

    我们通过编写vim test.sh,然后用不同方法执行名为test.sh的脚本。

    #!/bin/bash
    echo "hello word"

    概述

    1)使用绝对路径执行。
    2)使用相对路径执行。语法格式:./a.sh
    3)使用 sh或bash命令来执行。语法格式: sh a.sh 不需要执行权限 -x参数(显示执行过程)
    4)使用 . (空格)脚本名称来执行。 语法格式:. a.sh 不需要执行权限(特别注意:第一个.后面有空格)
    5)使用 source 来执行。 语法格式:source a.sh 不需要执行权限(主要用于生效配置文件)

    下面针对这5种方式,我们一起来看看它们的具体使用方式和区别吧!

    正题

    一、方式1绝对路径和方式2相对路径,可以归纳为同一种方法

    注意:新创建的脚本,默认没有x执行权限,需要给它用#chmod +x test.sh的方式,添加执行权限。在生产环境中不要轻易的给文件可执行权限;

    [root@Centos7 shell]# /root/test/shell/test.sh   #使用绝对路径
    hello word
    [root@centOS7 shell]# ./test.sh  #使用相对路径

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    二、方式3使用 sh/bash命令来执行

    注意:该方式虽然不需要手动给脚本添加x执行权限,但是它会改变脚本默认解释器类型。比如说:脚本首行定义的是#!/bin/bash,使用该方式,它会给你改用/bin/sh解释器,也就说,最终效果=#!/bin/bash --posix

    特别之处:该方式1.不需单独给脚本分配x执行权限;2.甚至都不需要在脚本首行声明脚本解释器类型,因为脚本是被当做该命令的参数使用的。

    注:你可能会对/bin/bash和/bin/sh的区别感兴趣,点击这里。

    ls 
    chomod -x test.sh  #给脚本移除x执行权限
    ls
    sh test.sh    #第3种方式运行
    bash test.sh  #第3种方式运行

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    三、方式4使用 . (空格)脚本名称来执行

    注:该方式,不需要单独添加x执行权限,它和source类似,权限继承与bash。

    ls  #查看脚本(灰色的,说明没有x可执行权限)
    . test.sh   #注意,点后面有个空格

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    四、方式5使用 source 来执行(主要用于生效配置文件)

    ls  #查看脚本(灰色的,说明没有x可执行权限)
    source test.sh   #该方式多用些操作,被修改后的配置文件(使之重新加载)

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    注意: 

    .和source的权限,继承的是/bin/bash的权限,在执行时也是将test.sh作为参数,并不需要test.sh有执行权限;和bash执行不一样的是,source和.不会创建子进程,是在当前shell进程下执行的,因为他们是内建命令,所以脚本中赋值的本

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    区别

    1.关于执行权限

    仅前两种(相对路径、绝对路径)方法,需要chmod +x test.sh,给脚本单独添加x执行权限。后三种方法,均不需要单独添加x执行权限。

    2.关于是否开启子shell线程

    前三种方法,脚本执行时会开启一个子shell环境,在子shell执行完后,子shell环境随即关闭,然后又回到当前shell中。

    后面两种. 和source方式,则是在当前shell中执行,不会开启子shell。

    总结 

    到此这篇关于shell脚本5种执行方式及脚本不同的执行方法和区别的文章就介绍到这了,更多相关shell脚本执行方式内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    免责声明:

    ① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

    ② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档

    猜你喜欢

    shell脚本5种执行方式及脚本不同的执行方法和区别详解

    目录前言概述正题一、方式1绝对路径和方式2相对路径,可以归纳为同一种方法二、方式3使用 sh/bash命令来执行三、方式4使用 . (空格)脚本名称来执行四、方式5使用 source 来执行(主要用于生效配置文件)区别1.关于执行权限2.关
    2022-07-19

    执行Shell脚本的4种方法及区别介绍

    执行shell脚本有以下几种方式 1、相对路径方式,需先cd到脚本路径下[root@banking tmp]# cd /tmp [root@banking tmp]# ./ceshi.sh脚本执行成功 2、绝对路径方式[root@ban
    2022-06-04

    执行Shell脚本的4种方法及区别是什么

    这篇文章主要讲解了“执行Shell脚本的4种方法及区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“执行Shell脚本的4种方法及区别是什么”吧!执行shell脚本有以下几种方式1、相
    2023-06-09

    c#动态执行脚本的3种方式详解

    本文主要介绍了c#动态执行脚本的3种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-14

    Shell脚本中执行sql语句操作mysql的5种方法

    对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本。本文描述了在Linux环境下mysql数据库中,shell脚本下调用sql语句的几种方法,供大家参考。对于脚本输出的结果美化,需要进一步完善和调整。以下为具
    2022-06-04

    Shell脚本中多命令逻辑执行顺序的方法详解

    linux中可以使用分号“;”、双and号“&&”和双竖线“||”来连接多个命令。单"&"符号也算命令连接符号,只不过它是将其前面的命令放入后台执行,所以可以变相地实现命令并行执行。 1.分号";" command1 ; command2
    2022-06-04

    让Linux下的cron以秒为单位执行shell脚本的3种方法

    需要用到Shell脚本每隔3秒钟去监控一个软件进程的运行状态,发现crond似乎只支持到分,不知道秒,怎么办呢? 第一种方法: 当然首先想到的是写一个触发的脚本,在触发脚本中使用死循环来解决此问题,如下: cat kick.sh#!/bin
    2022-06-04

    达梦数据库DISQL连接数据库与执行SQL、脚本的方法图文详解

    目录1.DISQL介绍2.DISQL连接数据库的方法2.1 本地连接2.2 远程连接2.3 CONN连接3.执行SQL、脚本的方法3.1 通过DISQL登录后在字符界面3.2 启动DISQL时运行脚本3.3 进入DISQL后,通过start
    达梦数据库DISQL连接数据库与执行SQL、脚本的方法图文详解
    2024-09-01

    编程热搜

    目录