浅谈shell脚本之判断和循环语句

前言:

什么是shell?shell是操作系统的最外层,shell可以合并编程语言以控制进程和文件,以及启动和控制其他文件。

简单来说:shell就是一个用户跟操作系统之间交互的命令解释器。

——Shell执行命令方式:

交互(命令行):1.人工干预 2.逐条解释执行、效率低

非交互(脚本):1.需提前设计 2.批量执行、效率高

shell脚本:Shell Script ,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。

——提前将可执行的命令语句写入一个文件——顺序执行——解释器逐行解释代码

所谓判断语句,是为了让脚本更加智能

所谓循环,是为了把复杂的问题变得更简单高效

Shell脚本的智能化

1.使Shell脚本获得识别能力

2.为命令的执行提供最直接的识别依据

  • 文件或目录的读/写等状态

  • 数值的大小

  • 字符串是否匹配

  • 多条件组合

image-20220615212354574

image-20220615212553542

注释:
#!/bin/bash 主要是为了声明,我所写的均为bash语言(我是用的是bash解释器)[定义我的脚本是shell脚本].{固定格式}
#! 称为sha-bang符号,是shell脚本的起始符,他告诉linux系统这个文件的执行需要指定一个解释器。

执行权限的不同方式

image-20220614232153686

如何编写第一个Shell脚本(shell 就是命令的集合)

image-20220615214644626

image-20220615214047444

image-20220615215001544

image-20220615215018298

image-20220615215239767

一.条件测试

(一)test命令

测试表达式是否成立,若不成立返回0,否则返回其他数值

image-20220615084107135

一般用[ ]进行测试

image-20220615085212429

image-20220615085950567

(二)文件测试

1.语法格式:

image-20220615090124167

2.常用的测试操作符

image-20220615090335231

实操测试:

image-20220615091656062

(三)数值比较

1.语法格式:

image-20220615094653043

2.常用的测试操作符

image-20220615094844300

实操:

image-20220615095154467

image-20220615095553955

注意点:别记错就行

(四)字符串比较

1.语法格式:

image-20220615095722190

2.常用的测试操作符

image-20220615095822173

实操:

image-20220615190318869

image-20220615105458519

(五)逻辑测试

1.语法格式:

image-20220615110003217

2.常用的测试操作符

image-20220615110102513

补充:

控制符(可接多条命令)

  • “;” —— 命令1 ;命令2 (按顺序,无逻辑,各自玩)

  • “&&”——(and)命令1 && 命令2 (按顺序,有逻辑,命1成功则执行命2,若命1不成功则也不执行命2)

  • “||”——(or)命令1 || 命令2 (按顺序,无逻辑,两者选其一)

image-20220615184709041

(六)基础命令

image-20220615112750648

比较:cut是过滤某一列,grep是某一行

小结:条件测试的几种方式,命令的运用,通过命令的控制操作符自己看着玩

二.if语句

(一)单分支语句

if单分支语句是当满足某个条件时,执行某个操作,而不满足该条件时,不执行任何操作结构:

在这里插入图片描述

image-20220615113646114

实操:

image-20220615113946512

image-20220615114043698

注:要先设置可执行权限

注:最后的echo是换行的功能

(二)双分支结构

if双分支语句是当满足某个条件时,执行某个操作,当不满足这个条件时,执行另一个操作

在这里插入图片描述

image-20220615115255809

(三)多分支语句

if多分支语句是当满足条件1时,执行命令1;
—>当不满足条件1时,往下走,判断是否满足条件2,如果满足条件2则执行命令2;
—>如果不满足条件2,则继续往下走,直到走到else语句,说明之前的条件都不满足,最终执行命令n

在这里插入图片描述

image-20220615115405592

应用案例:

猜数字游戏

(if3.sh)

image-20220616145736087

image-20220615115454701

read -p:显示提示信息

小结:基本的if语法格式运用

三.for循环

for循环,又有人称之为条件循环,或者for i in ,其实就是for循环的特性,次数和给与的条件是成正比的
for语句结构
读取不同的变量值,用来逐个执行同一组命令

作用:减少代码的冗余和重复

image-20220615120344946

在这里插入图片描述

image-20220615223008823

批量数字用{ … }

image-20220615224023903

应用:

1.计算从1到100所有整数的和

image-20220615224659271

image-20220615224839666

若是先echo 后done,则会出现每次的结果,要看具体的环境需求。

拓展:

打印9*9乘法表

image-20220615230653714

可见echo ,done 在其行的任意位置都是可以的,不影响输出结果。

-n : 表示输出之后不换行,直接显示新行的提示符

echo 后不跟东西表示默认换行

四.while和until循环

while

只要条件成立,则反复循环,不成立即停止
1、while语句结构

image-20220615121740131

img

image-20220615231409632

image-20220615231903459

拓展应用:

猜随机数

image-20220615232835809

小结:

for一般用于固定次数循环,当你值列表给4个值的时候,就循环4次,5个值就5次

while一般用于非固定次数循环,只要条件测试为真,就一直循环do和done中的命令

until 循环

重复测试某个条件,只要条件不成立则反复循环

1、until语句结构

在这里插入图片描述

2.实操:

显示1-10的整数

image-20220615234737890

计算1—50的整数和

image-20220615234803904

拓展:

1.正直角三角形

image-20220615234917797

image-20220615234949367

2.长方形

image-20220615235033041

image-20220615235051107

还有case、break、continue语句等后续学习

学习思路:从宏观到微观,从大方面到小细节,从掌握逻辑思路到实际操作,从模仿到创造。(我以为就是懂得如何正确套娃就行。)

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值