笔记--(Shell脚本04)、循环语句与函数

news/2024/12/20 7:26:37/

循环语句

1、for语句的结构
for 变量名 in 取值列表
do 命令序列
done================================
for 收件人 in 邮件地址列表
do 发送邮件
done
=================================for i in {1..10}
doecho $i
done[root@localhost shell]# ./ce7.sh 
1
2
......
9
10
====================================
1 #!/bin/bash2 3 for i in `seq 1 10`4 do5   echo $i6 done[root@localhost shell]# ./ce8.sh 
1
2
.....
9
10
====================================
#固定次数的for循环,计算1-10的和#!/bin/bashSUM=0for (( i=1 ; i<=10 ; i++ ))dolet SUM=$SUM+$idoneecho "sun=$SUM"==============================================[root@localhost shell] ./ce8.sh 
sun=55
2、while语句结构
while  条件测试操作
do命令序列
done
==========================while 未猜中正确价格
do反复猜测商品价格
done
#计算1~10的和
#!/bin/bash
i=1
sum=0
while [ $i -le 10 ]
dolet sum=sum+ilet i++doneecho "sum的和是$sum"
3、until语句结构
until 条件测试操作
do命令序列
done
----------------------------
until 未超过10
do数字依次递增
done
#/bin/bash
i=1
until [ $i -eq 10 ]
doecho $ilet i++
done
-------------------------------
[root@localhost suyi] ./while.sh 
1
2
......
8
9

控制流语句

1、exit
系统是有 exit 命令的,用于退出当前用户的登录状态。可是在 She11 脚本中,exit 语句是用来
退出当前脚本的。也就是说,在 Shel1 脚本中,只要碰到了 exit 语句,后续的程序就不再执行,而
直接退出脚本。exit 的语法如下:
exit [ 返回值 ]
如果 exit 命令之后定义了返回值,那么这个脚本执行之后的返回值就是我们自己定义的返回值。
可以通过查询$?这个变量,来查看返回值。如果 exit 之后没有定义返回值,脚本执行之后的返回值
是执行 exit 语句之前,最后执行的一条命令的返回值。

在这里插入图片描述

2、break

在这里插入图片描述

3、continue

在这里插入图片描述

Shell函数

1、函数的参数
参数的用法
函数名称 参数1 参数2 参数3....
=================================
参数的表示方法
$1 $2 $3 ....${10} ${11}....
=================================
2、定义和调用函数、传递参数
#!/bin/bash
#定义函数
function test(){echo "this is test"return 0
}
#调用函数
test
result=$?
echo "函数的返回值是:$result"
echo "end"
======================================
#!/bin/bash
#定义函数
function test(){echo $((1+1))
}
#调用函数
result=$(test)
echo "函数的返回值是$result"
echo "end"
3、数组下标
#数组下标从0开始
#!/bin/bash
#定义数组
arr=(11 22 33 44 55)
#通过下标获取元素
echo "第一个元素:${arr[0]}"  #获取到的是11 
================================================
特殊下标:@或*表示整个数组
#!/bin/bash
#定义数组
arr=(11 22 33 44 55)
#获取整个数组
echo "整个数组:${arr[@]}" #获取到的是 11 22 33 44 55
4、获取数组长度
number=(1 2 4 5 6) #随机输入五个数
length=${#number[*]} #获取number这组数组长度
echo $length
5        #输出结果为这组是5个长度
5、数组替换
${数组名[@和*]/查找字符/替换字符}
arr=(1 2 3 5 4)
echo ${arr[@]/4/66}
1 2 3 5 66
echo ${arr[@]}
1 2 3 5 4
arr=(${arr[@]/4/66})
echo ${arr[@]}
1 2 3 5 66
6、数组删除
#unset 数组删除
arr=(1 2 3 4 5)
unset arr
echo ${arr[*]}#输出为空
========================
arr=(1 2 3 4 5)
unset arr[2]  #删除下标2个 就是0 1 2 对应的是3
echo ${arr[*]}
1 2 4 5 

o ${arr[@]}
1 2 3 5 66


#### 6、数组删除~~~shell
#unset 数组删除
arr=(1 2 3 4 5)
unset arr
echo ${arr[*]}#输出为空
========================
arr=(1 2 3 4 5)
unset arr[2]  #删除下标2个 就是0 1 2 对应的是3
echo ${arr[*]}
1 2 4 5 

http://www.ppmy.cn/news/1556600.html

相关文章

SpringBoot 开启热部署 项目热启动 一键调试无需 无需重启

依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope> <!-- 只在开发环境下使用 --> </dependency>Idea设置 设置完后&#xff0c;修…

谓词下推、逻辑优化、列剪枝

1.谓词下推&#xff08;Predicate Pushdown Optimization&#xff0c;PPO&#xff09; 1.1 基本概念与例子 谓词下推&#xff08;Predicate Pushdown&#xff09; 是数据库查询优化中的一种技术&#xff0c;它将查询中的谓词&#xff08;通常是 WHERE 子句、JOIN 条件等&…

Windows 小记 13 -- 如何正确获取 UIAccess

UIAccess 特权允许应用访问辅助应用程序的 UI 所在的窗口带。通俗点讲&#xff0c;UIAccess 获取后&#xff0c;具有 WS_EX_TOPMOST 样式的窗口将始终置顶&#xff08;高于任何应用&#xff09;。 网络上获取 UIAccess 的一般方法是通过复制特权进程的令牌&#xff0c;并赋予 …

MVCC了解

MVCC&#xff08;多版本并发控制&#xff09;学习指南及代码示例 一、学习MVCC前先了解什么 1. MVCC的定义和作用 MVCC是一种并发控制机制&#xff0c;用于解决并发事务访问数据库时可能出现的问题&#xff0c;如脏读、不可重复读和幻读。它通过为每个数据行维护多个版本来实…

JS里面Map的使用以及与Object的对比

Map vs Object 顺序 Object&#xff1a;它的对象属性是无序的&#xff0c;或者是说不保证有序。 Map&#xff1a;它的键值对是按照插入的顺序存储的&#xff0c;是有序的。 键的类型 Object的键是字符串或Symbol类型。 Map的键可以是任意类型。 性能 Object在频繁增删时…

selenium模拟某网校带密码登陆

本文使用selenium在火狐浏览器模拟密码登陆某网校&#xff0c;使用css选择器点击 带密码登陆 打开网校登陆界面&#xff0c;可以看到有三个登陆选项&#xff0c;这里选择第二个&#xff0c;普通登陆 我们需要填写用户名和密码&#xff0c;最后勾选用户协议点击登陆按钮 首先获…

环境变革下 B2B 销售的转型与创新:开源 AI 智能名片与 S2B2C 商城小程序的助力

摘要&#xff1a;本文探讨了在信息科技与互联网迅猛发展所引发的环境改变背景下&#xff0c;B2B 销售工作面临的挑战与机遇。深入分析了传统销售模式的局限性以及新环境对销售人员素质和能力的要求&#xff0c;提出从提供“信息”向提供“业务价值”转变的必要性。同时&#xf…

大模型应用编排工具Dify之自定义工具

1.前言 ​ dify中提供了自定义工具的能力&#xff0c;工具十分容易复用&#xff0c;在需要的流程编排中进行引用即可。根据笔者的经验和理解&#xff0c;自定义工具有点类似微服务&#xff0c;可以把通用的能力封装到工具里面。同时&#xff0c;工具还提供了测试和鉴权等功能&…