目录
前言概述正题一、方式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 #使用相对路径
二、方式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种方式运行
三、方式4使用 . (空格)脚本名称来执行
注:该方式,不需要单独添加x执行权限,它和source类似,权限继承与bash。
ls #查看脚本(灰色的,说明没有x可执行权限) . test.sh #注意,点后面有个空格
四、方式5使用 source 来执行(主要用于生效配置文件)
ls #查看脚本(灰色的,说明没有x可执行权限) source test.sh #该方式多用些操作,被修改后的配置文件(使之重新加载)
注意:
.和source的权限,继承的是/bin/bash的权限,在执行时也是将test.sh作为参数,并不需要test.sh有执行权限;和bash执行不一样的是,source和.不会创建子进程,是在当前shell进程下执行的,因为他们是内建命令,所以脚本中赋值的本地变量也会影响当前shell的,用的时候一定要注意(尽量使用前面的3种方式)。
区别
1.关于执行权限
仅前两种(相对路径、绝对路径)方法,需要chmod +x test.sh,给脚本单独添加x执行权限。后三种方法,均不需要单独添加x执行权限。
2.关于是否开启子shell线程
前三种方法,脚本执行时会开启一个子shell环境,在子shell执行完后,子shell环境随即关闭,然后又回到当前shell中。
后面两种. 和source方式,则是在当前shell中执行,不会开启子shell。
总结
到此这篇关于shell脚本5种执行方式及脚本不同的执行方法和区别的文章就介绍到这了,更多相关shell脚本执行方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
- 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
- 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
- 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
- 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
- 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
- 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
- 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
- 9北京市市场监管局为企业纾困减负保护经济韧性
- 10市场监管总局发布限制商品过度包装标准和第1号修改单