shell脚本中调试和执行的几种方式

本文介绍了Shell脚本的三种执行方式:通过sh、source或.命令,并详细阐述了它们的区别。通过chmod +x给予脚本执行权限,可以直接运行。脚本第一行的shell类型对执行方式有影响,无需开启子shell。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)脚本的调试

实验步骤如下

vim test1.sh编写测试脚本

在这里插入图片描述

#!/bin/bash
ech0 westos故意将echo写为ech0

在这里插入图片描述

调试方式一:sh test.sh
直接显示找不到,报错,但是不说在哪
调试方式二:sh -x  test.sh 
加上-x会显示错在哪,显示脚本里面的内容,并且还会报错,显示过程

在这里插入图片描述

(2)脚本的执行

vim test2.sh编辑测试脚本
#!/bin/bash
watch -n 1 date

在这里插入图片描述
在这里插入图片描述
调用方式一:sh test.sh( 属于一种调用方式,这种调用方式是在外面指定shell环境是sh)

ctrl+z打入后台
ps -f 查看进程:发现是在脚本里面的shell下面开启了一个子shell,进而执行脚本里面的命令
fg调回进程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
调用方式二:source test.sh(直接使用脚本里面的shell类型)

ctrl+z
ps f 使用的是当前shell的环境

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
调用方式三:. test.sh使用的是脚本里面的shell
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
chmod +x test.sh给一个执行权限
直接/mnt/test.sh回车,这样就是另外一种执行方式(使用的就是脚本里面的第一行的shell类型,不用开启子shell,这一行也叫幻数)
sh bash tcsh 这些shell类型均可以写在脚本的第一行,也可以在外面调用,都可以

source test.sh=.  test.sh
./test.sh=/mnt/test.sh

通过示例看区别

vim test.sh
写入:
a=2
#!/bin/bash
echo $a

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

. test.sh    source test.sh 这两种方式都可以显示a的值
sh test.sh不能显示a的值,因为a的值在当前shell的环境里面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值