前言:
什么是shell?shell是操作系统的最外层,shell可以合并编程语言以控制进程和文件,以及启动和控制其他文件。
简单来说:shell就是一个用户跟操作系统之间交互的命令解释器。
——Shell执行命令方式:
交互(命令行):1.人工干预 2.逐条解释执行、效率低
非交互(脚本):1.需提前设计 2.批量执行、效率高
shell脚本:Shell Script ,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
——提前将可执行的命令语句写入一个文件——顺序执行——解释器逐行解释代码
所谓判断语句,是为了让脚本更加智能
所谓循环,是为了把复杂的问题变得更简单高效
Shell脚本的智能化:
1.使Shell脚本获得识别能力
2.为命令的执行提供最直接的识别依据
-
文件或目录的读/写等状态
-
数值的大小
-
字符串是否匹配
-
多条件组合
注释:
#!/bin/bash 主要是为了声明,我所写的均为bash语言(我是用的是bash解释器)[定义我的脚本是shell脚本].{固定格式}
#! 称为sha-bang符号,是shell脚本的起始符,他告诉linux系统这个文件的执行需要指定一个解释器。
执行权限的不同方式
如何编写第一个Shell脚本(shell 就是命令的集合)
一.条件测试
(一)test命令
测试表达式是否成立,若不成立返回0,否则返回其他数值
![image-20220615084107135](https://i-blog.csdnimg.cn/blog_migrate/d7412e33322c9f8d3711b97e57643f67.png)
一般用[ ]进行测试
(二)文件测试
1.语法格式:
2.常用的测试操作符
实操测试:
(三)数值比较
1.语法格式:
2.常用的测试操作符
实操:
注意点:别记错就行
(四)字符串比较
1.语法格式:
2.常用的测试操作符
实操:
(五)逻辑测试
1.语法格式:
2.常用的测试操作符
补充:
控制符(可接多条命令)
-
“;” —— 命令1 ;命令2 (按顺序,无逻辑,各自玩)
-
“&&”——(and)命令1 && 命令2 (按顺序,有逻辑,命1成功则执行命2,若命1不成功则也不执行命2)
-
“||”——(or)命令1 || 命令2 (按顺序,无逻辑,两者选其一)
(六)基础命令
比较:cut是过滤某一列,grep是某一行
小结:条件测试的几种方式,命令的运用,通过命令的控制操作符自己看着玩
二.if语句
(一)单分支语句
if单分支语句是当满足某个条件时,执行某个操作,而不满足该条件时,不执行任何操作结构:
实操:
注:要先设置可执行权限
注:最后的echo是换行的功能
(二)双分支结构
if双分支语句是当满足某个条件时,执行某个操作,当不满足这个条件时,执行另一个操作
(三)多分支语句
if多分支语句是当满足条件1时,执行命令1;
—>当不满足条件1时,往下走,判断是否满足条件2,如果满足条件2则执行命令2;
—>如果不满足条件2,则继续往下走,直到走到else语句,说明之前的条件都不满足,最终执行命令n
应用案例:
猜数字游戏
(if3.sh)
read -p:显示提示信息
小结:基本的if语法格式运用
三.for循环
for循环,又有人称之为条件循环,或者for i in ,其实就是for循环的特性,次数和给与的条件是成正比的
for语句结构
读取不同的变量值,用来逐个执行同一组命令
作用:减少代码的冗余和重复
批量数字用{ … }
应用:
1.计算从1到100所有整数的和
若是先echo 后done,则会出现每次的结果,要看具体的环境需求。
拓展:
打印9*9乘法表
可见echo ,done 在其行的任意位置都是可以的,不影响输出结果。
-n : 表示输出之后不换行,直接显示新行的提示符
echo 后不跟东西表示默认换行
四.while和until循环
while
只要条件成立,则反复循环,不成立即停止
1、while语句结构
拓展应用:
猜随机数
小结:
for一般用于固定次数循环,当你值列表给4个值的时候,就循环4次,5个值就5次
while一般用于非固定次数循环,只要条件测试为真,就一直循环do和done中的命令
until 循环
重复测试某个条件,只要条件不成立则反复循环
1、until语句结构
2.实操:
显示1-10的整数
计算1—50的整数和
拓展:
1.正直角三角形
2.长方形
还有case、break、continue语句等后续学习
学习思路:从宏观到微观,从大方面到小细节,从掌握逻辑思路到实际操作,从模仿到创造。(我以为就是懂得如何正确套娃就行。)