Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环

简介: Shell流程控制(重点)、if 判断、case 语句、let用法、for 循环中有for (( 初始值;循环控制条件;变量变化 ))和for 变量 in 值 1 值 2 值 3… 、while 循环

@[toc]
如果想看更详细的Shell总结请到我之前写的博客https://blog.csdn.net/Redamancy06/article/details/126048299

1.流程控制(重点)

1.1if 判断

1.1.1基本语法

注意事项:
①[ 条件判断式 ],中括号和条件判断式之间必须有空格
②if 后要有空格

1.1.1.1单分支

if [ 条件判断式 ];then
 程序 
fi
或者 
if [ 条件判断式 ] 
then
 程序 
fi

1.1.1.2多分支

if [ 条件判断式 ] 
then
    程序 
elif [ 条件判断式 ] 
then
    程序 
else
    程序 
fi

1.1.2案例

1.1.2.1单分支

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
当这样写的时候,没有传入参数时,会报错的,所以要按照下面的做法做

在这里插入图片描述

在这里插入图片描述
这样的话就不会报错了,因为要是不输入参数的时候两边也都不会为空

1.1.2.2用逻辑与&&逻辑或||连接(单分支)

1.1.2.2.1逻辑与&&

在这里插入图片描述

在中括号里面的话就不用&&而是用-a(-and)

在这里插入图片描述

1.1.2.2.2逻辑或||

在这里插入图片描述

在中括号里面的话就不用||而是用-o(-or)
在这里插入图片描述

1.1.2.3多分支

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

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

1.2case 语句

1.2.1基本语法

case $变量名 in 
"值 1")
    如果变量的值等于值 1,则执行程序 1 
;;
"值 2")
    如果变量的值等于值 2,则执行程序 2 
;; 
    …省略其他分支… 
*) 
    如果变量的值都不是以上的值,则执行此程序 
;;
esac

1.2.2注意事项:

(1)case 行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。 (2)双分号“;;”表示命令序列结束,相当于 java 中的 break。
(3)最后的“*)”表示默认模式,相当于 java 中的 default。

1.2.3案例cast_test.sh

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.3for 循环

1.3.1基本语法1

for (( 初始值;循环控制条件;变量变化 )) 
do 
    程序 
done

1.3.2基本语法 2

for 变量 in 值 1 值 2 值 3… 
do 
    程序 
done

1.3.3案例

1.3.3.1for (( 初始值;循环控制条件;变量变化 ))

在这里插入图片描述

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

1.3.3.2“{}”在linux shell里面表示生成序列

在这里插入图片描述

{1..100}表示从1到100,中间是两个点,别看错了

1.3.3.3for 变量 in 值 1 值 2 值 3…

在这里插入图片描述

1.3.3.2在for循环中$*和$@的区别

在这里插入图片描述
$*和$@没有加双引号的时候输出结果为下:

在这里插入图片描述
他们两个的输出结果一致

在这里插入图片描述

当加上双引号后。结果如下:
在这里插入图片描述

当它们被双引号“”包含时,
$*会将所有的参数作为一个整体,以“$1 $2 …$n”的形式输 出所有参数;
$@会将各个参数分开,以“$1” “$2”…“$n”的形式输出所有参数。

1.4while 循环

1.4.1基本语法

while [ 条件判断式 ] 
do 
    程序 
done

1.4.2从1加到100

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1.4.3let用法

在新版shell中支持用let的,他的语言是和高级语言差不多的
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
如果想看更详细的Shell总结请到我之前写的博客http://t.csdn.cn/cQArA

相关文章
|
22天前
|
Java Shell 网络安全
Shell 流程控制
10月更文挑战第4天
34 2
|
2月前
|
Shell
shell脚本变量 $name ${name}啥区别
shell脚本变量 $name ${name}啥区别
|
24天前
|
存储 Java Shell
Shell 变量
10月更文挑战第2天
14 0
|
2月前
|
Java Shell Linux
Shell 变量设置
Shell设置变量
44 5
|
2月前
|
Java Shell Linux
Shell 变量设置25-1
Shell编程语言是一种非类型的解释型语言,无需像C++/Java那样事先声明变量。通过赋值即可定义变量,在Linux支持的所有Shell中均适用。变量分为局部变量与环境变量,前者仅限于定义脚本内使用,后者可在其派生的子进程中使用。常见系统变量如$0表示当前程序名称,$n表示第n个参数(n=1,2,...,9),$*代表所有参数,$#代表参数个数,$?表示命令执行后的状态(0为成功),$UID为当前用户ID,$PWD表示当前目录。定义变量如`A=123`,
30 0
|
15天前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
53 1
|
1天前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
11 2
6种方法打造出色的Shell脚本
|
6天前
|
监控 网络协议 Shell
ip和ip网段攻击拦截系统-绿叶结界防火墙系统shell脚本
这是一个名为“小绿叶技术博客扫段攻击拦截系统”的Bash脚本,用于监控和拦截TCP攻击。通过抓取网络数据包监控可疑IP,并利用iptables和firewalld防火墙规则对这些IP进行拦截。同时,该系统能够查询数据库中的白名单,确保合法IP不受影响。此外,它还具备日志记录功能,以便于后续分析和审计。
31 6
|
2天前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
1月前
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
58 12