shell脚本程序的编写

本文详细介绍了Shell脚本的创建和使用,包括.sh文件、shebang、read命令、source与chmod命令、test条件判断、expr表达式、控制语句(if、case、for、while、until)以及函数的运用。通过实例解析了脚本中的各种操作和逻辑,帮助读者深入理解Shell编程。

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

脚本文件的创建
以.sh为后缀名的文件,包含shell所执行命令的文件
脚本文件的第一行必须是 “#!”,称为shebang,它指明了执行这个脚本文件的解释程序的绝对路径

例1 :readme.sh
read命令:从终端读入字符串放在指定变量中,用户在终端进行输入,等到遇到换行符时,输入的内容被读入,并赋值给指定的变量
在这里插入图片描述
运行脚本文件:

  1. 用bash命令新起一个进程,将脚本文件作为bash命令的参数,就会在新起的进程中运行脚本文件
    在这里插入图片描述
  2. source命令(“.”)
    source命令简写为".",意为在 当前进程 中执行一个脚本文件
  • chmod命令:改变权限
    chmod a+x readme.sh
    “a”代表给所有用户,“+”代表添加,“-”代表删除,“x”代表可执行权限
    这句命令的含义是给所有用户添加readme.sh的可执行权限
    在这里插入图片描述

test命令

test命令用于逻辑分支判断

字符串比较

在这里插入图片描述
等号两边一定要有空格!
echo $? 查看上一命令的执行结果或返回值
在这里插入图片描述
返回值为1:与C语言相反,1表示逻辑false,0表示true
C语言中在程序执行一切正常时,会在最后 return 0 ,0 就是程序在执行结束之后返回的值,执行成功则返回0 。在本例中,test 命令发现1≠2,所以返回1 来表示条件不成立,而返回 0 代表一切正常
注意:echo $? 返回的是最近一次的执行结果,因此如果已经执行过一次echo $? ,再次执行该命令时,返回的是上一次echo $?的执行结果,而echo命令一般情况下都能执行成功,因此结果一般都为 0
在这里插入图片描述

数值比较

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

文件测试比较

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

逻辑操作

在这里插入图片描述
在这里插入图片描述
test命令的简写:配对的 [ 和 ]
在这里插入图片描述

expr命令

expr 即 expression 命令:计算表达式
注意:运算符两边必须有空格
在这里插入图片描述
在这里插入图片描述

条件控制语句

if

注意:1. 方括号 [ ] 2. 条件之后的“;” 3. “[”和“]”前后都要有空格
以 “fi”(反写的“if”)结束 if 语句
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
程序的作用:如果进入目录成功,cd命令会返回0,if遇到 0 会判断为是逻辑true(与C语言相反),则会打印thenecho的语句,并且ls这个目录里的内容,如果不成功,则打印else中的echo语句,并返回1,表示该程序运行过程中有错误发生

case语句

在这里插入图片描述

循环语句

for语句

![在这里插入图片描述](https://img-blog.csdnimg.cn/e4f04e4d46e14d478bbc16eca57f64be.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARWdyZXR0YSBnYXJ6ZXR0YQ==,size_18
偷懒的 for 语句
把脚本文件收到的所有参数默认地作为 for 语句的循环列表
for 语句循环列表即为我们传递给 for 语句的参数
在这里插入图片描述

while 语句

在这里插入图片描述

until语句

在这里插入图片描述

函数

因为shell中的变量没有数据类型,所以参数也没有类型,因此函数名后的“()”里内容为空
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Asio otus

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

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

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

打赏作者

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

抵扣说明:

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

余额充值