当前位置: 首页 > article >正文

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

循环语句

1、for语句的结构
for 变量名 in 取值列表
do 
  命令序列
done

================================
for 收件人 in 邮件地址列表
do 
  发送邮件
done
=================================

for i in {1..10}
do
  echo $i
done

[root@localhost shell]# ./ce7.sh 
1
2
......
9
10
====================================
1 #!/bin/bash
  2 
  3 for i in `seq 1 10`
  4 do
  5   echo $i
  6 done

[root@localhost shell]# ./ce8.sh 
1
2
.....
9
10
====================================
#固定次数的for循环,计算1-10的和
 #!/bin/bash
   SUM=0
   for (( i=1 ; i<=10 ; i++ ))
   do
     let SUM=$SUM+$i
   done
    echo "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 ]
do
  let sum=sum+i
  let i++
 done
 echo "sum的和是$sum"
3、until语句结构
until 条件测试操作
do
  命令序列
done
----------------------------
until 未超过10
do
  数字依次递增
done
#/bin/bash
i=1
until [ $i -eq 10 ]
do
  echo $i
  let 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.kler.cn/a/443719.html

相关文章:

  • Spring Boot 中的 @Scheduled 定时任务以及开关控制
  • 使用strimzi-kafka-operator 的mirrormake2(mm2)迁移kafka集群,去掉目标集群的topic默认前缀
  • 利用Gurobi追溯模型不可行原因的四种方案及详细案例
  • Python 写的 智慧记 进销存 辅助 程序 导入导出 excel 可打印
  • kotlin中泛型中in和out的区别
  • 【数据结构练习题】链表与LinkedList
  • 多功能护照阅读器港澳通行证阅读机RS232串口主动输出协议,支持和单片机/Linux对接使用
  • Midjourney教程之生成同一角色的不同姿势和服装
  • Docker 容器网络问题排查与最佳实践 - PushGateway 部署案例分析
  • 详细分析:AG32 MCU与STM32/GD32的区别
  • Android 折叠屏问题解决 - 展开后布局未撑开
  • 【图像配准】方法总结
  • HarmonyOS NEXT 应用开发实战:音乐播放器的完整实现
  • Vue|scoped样式
  • mapboxGL中室内地图的实现
  • PowerMILL 客制化宏 - 命令关键字
  • 应用如何借用manifestxml追加gid权限
  • PostgreSql-学习06-libpq之同步命令处理
  • go 自己写序列化函数不转义
  • UE5 角色换新枪械的偷懒办法
  • UE5 Lyra项目源码分析-角色配置说明
  • WebRTC服务质量(04)- 重传机制(01) RTX NACK概述
  • 简易记事本开发-(SSM+Vue)
  • Navicat 17 功能简介 | SQL 美化
  • 力扣题目解析--K个一组翻转链表
  • 042_Unscented Kalman Filter in Matlab无迹卡尔曼滤波