【Shell 编程】执行bash shell脚本的几种方式,你知道区别吗?


hello大家好😁

前言❓

我目前学习到五种种执行bash shell脚本的方法

  • 使用“sh”执行脚本
  • 使用绝对路径或相对路径执行脚本
  • 直接使用脚本名称
  • 使用“source”执行脚本
  • 使用“. ”执行脚本

我们来分析一下这五种方式的使用区别

分析❗

我们先在用户主目录的bin目录下创建printhostname.sh文件。执行这个文件后,会显示出主机名称

在这里插入图片描述

使用“sh”执行脚本

对应的xxx.sh脚本没有执行权限也可以执行

我们先看一下文件的权限信息:

在这里插入图片描述
可以看到printhostname.sh文件是没有执行权限的。但我们用sh 加 文件路径 ,是可以执行成功的

在这里插入图片描述

因为sh是系统命令,是直接和内核通信的,脚本直接被当做是命令的参数,因此文件没有x权限也可以执行

使用绝对路径或相对路径执行脚本

直接执行脚本的绝对路径或相对路径

但是,对应的xxx.sh脚本必须要有对应执行权限才可以执行

在这里插入图片描述

然后我们给这个文件添加执行权限后再执行:
在这里插入图片描述
发现这时执行成功

我们再切换到别的目录底下,就要用绝对路径去执行:
在这里插入图片描述

直接使用脚本名称

对应的xxx.sh脚本所在的目录必须在环境变量中,并且文件需要有执行权限

我们这里用到的printhostname.sh文件是创建在用户主目录下的bin目录下的,我们查看环境变量PATH,可以看到这个目录在环境变量中:

在这里插入图片描述

同时我们给文件添加了x权限

在这里插入图片描述

然后就可以直接使用脚本名称执行

在这里插入图片描述

使用“source”执行脚本

对应的xxx.sh脚本没有执行权限也可以执行
但多用于使配置文件生效

类似sh命令,脚本文件做命令的参数:
在这里插入图片描述

使用“.(空格)”执行脚本

不需要单独添加x执行权限,它和source类似,权限继承与bash。多用于使配置文件生效

在这里插入图片描述

总结💯

最后我们对以上五种方式做一个总结:

  • 必须要给脚本文件添加执行权限才可以执行的方法有两个:
    ①使用脚本文件的绝对路径或相对路径执行脚本
    ②直接使用脚本名称
  • 在当前shell进行,而不会开启子shell的方法有两个:
    ①使用“source”
    ②使用 “. (空格)”
    在其他三种方式中,脚本执行时会开启一个子shell环境,在子shell执行完后,子shell环境随即关闭,然后又回到当前shell中

但是我们执行脚本时一般都不使用 “source” 和 “. (空格)”
而且更多时候会给脚本文件添加执行权限

感谢💖

好啦,这次的分享就到这里,感谢大家看到这里💕,我目前还是学习中小白,十分希望能和各位朋友们大佬们在讨论区互动💫再次感谢💞

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值