case多分支语句

循环语句

  • for循环语句
  • while循环语句
  • untli循环语句

Shell函数

Shell数组

case语句的结构

  • 针对变量的不同取值,分别执行不同的命令序列

case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

......

*)

默认命令序列

esac

[root@localhost ~]# vim demo13.sh //编辑示例

#!/bin/bash

read -p "请输入一个字符:" a //交互指令

case $a in //编辑case语句

[a-z]|[A-Z]) //模式1

echo "输入的是字母" //输出提示信息

;;

[0-9]) //模式2

echo "输入的是数字" //输出提示信息

;;

*)

echo "输入的是特殊符号"

esac //结束语句

for语句结构

  • 读取不同的变量值,用来逐个执行同一组命令

for 变量名 in 取值列表

do

命令序列

done

  • 使用场景

指定次数循环 for(int i=0;i<=10;i++)

遍历循环(增强循环 foreach) for(int num:sum)

[root@localhost ~]# vim demo06.sh

#!/bin/bash

for ((i=1;i<=10;i++)) //循环条件

do

echo $i //输出i变量

done

[root@localhost ~]# vim aa.txt //创建txt文档

zhangsan

wangwu //输入信息

lisi

zhaoliu

~

:wq

[root@localhost ~]# vim demo07.sh //编辑循环脚本

#!/bin/bash

TMP=$(cat /root/aa.txt) //设置变量

for user in $TMP //编写循环

do

echo "用户是$user" //输出文档信息

done

while语句的结构

  • 重复测试某个条件,只要条件成立则反复执行

while 条件测试操作

do

命令序列

done

[root@localhost ~]# vim demo10.sh

#!/bin/bash

num=1 //声明变量

while [ $num -le 10 ] //编辑while循环

do

echo $num //输出循环结果

let num++; //等同于num=`expr $num+1`

done

nutil语句结构

  • 重复测试某个条件,只要条件不成立则反复执行

nutil 条件测试操作

do

命令序列

done

[root@localhost ~]# vim demo15.sh

#!/bin/bash

i=0 //设置赋值变量

s=0

until [ $i -eq 51 ];do //编辑until语句

let s+=i;let i++ //计算1-50的求和过程

done

echo $s //输出求和数值

Shell函数

  • 将命令序列按格式写在一起 (封装)
  • 可方便重复使用命令序列
  • Shell函数定义

[function] 函数(){

命令序列

[return x] //使用return或exit可以显示地结束函数

}

[root@localhost ~]# vim demo17.sh

#!/bin/bash

sum(){ //设置函数名

#命令序列

s=`expr 2 + 2` //编辑函数命令序列

echo $s //输出计算结果

}

sum //调用输出函数

  • 调用函数的方法

函数名 [参数1] [参数2]

[root@localhost ~]# vim demo18.sh

#!/bin/bash

sum(){

s=`expr $1 + $2` //使用位置变量计算

echo $s

}

sum 2 2 //函数名后添加位置变量

Shell数组

应用场景包括

  • 获取数组长度
  • 获取元素长度
  • 遍历元素
  • 元素切片
  • 元素替换
  • 元素删除
  • ......

数组定义方法

  • 方法一

数组名=(value0 value1 value2 ...)

  • 方法二

数组名=([0]=value [1]=value [2]=value ...)

  • 方法三

列表名="value0 value1 value2 ..."

数组名=($列表名)

  • 方法四

数组名[0]="value"

数组名[1]="value"

数组名[2]="value"

数组包括的数据类型

  • 数值类型
  • 字符类型

使用""或''定义

shell数组操作

获取数组长度

  • ${#数组名[@/*]}

[root@localhost ~]# num=(11 22 33 44 55) //定义数组

[root@localhost ~]# len=${#num[*]} //数组长度赋值给len

[root@localhost ~]# echo $len //输出数组长度

5

读取某下标赋值

  • ${数组名[下表]}

[root@localhost ~]# num=(11 22 33 44 55) //定义数组

[root@localhost ~]# a=${num[0]} //赋值数组下表

[root@localhost ~]# echo $a //输出下表

11

[root@localhost ~]# a=${num[1]}

[root@localhost ~]# echo $a

22

数组遍历

[root@localhost ~]# num=(11 22 33 44 55) //定义数组

[root@localhost ~]# for i in ${num[*]} //使用for循环遍历数组

> do

> echo $i //输出数组

> done

11

22

33

44

55

写在最后:

本专栏所有文章均为南京课工场学员投稿,如有问题欢迎指出讨论,未经允许,禁止转载!

shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句相关推荐

  1. python提供两种基本循环结构_零基础学python 12 程序不枯燥:for循环结构(课后习题)...

    上节课我们一起学习了咱们的for循环结构,这节课咱们来就之前学过的知识做一下习题吧: 1. 主题: Duck, Duck, Goose! 假设你在一个家禽农场工作,需要计算从传送带传下来的动物数量(不 ...

  2. python制作软件很复杂_零基础学Python难吗,或者有什么其他数据加工软件推荐?...

    之前因为一个问题的回答:零基础想系统的学习金融学.量化投资.数据分析.Python,需要哪些课程和书籍.获赞1000+.大概整理一下之前的答案,回答下这个问题. 金融领域的量化分析如今是很受重视的,所 ...

  3. 地图画指定区域_零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境...

    嘉灏今天分享第十课零基础学零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境的知识了解,有视频课程,亲们可以看视频教程,再次感谢大家的支持与信任. 桌子 BOX(命令) 创建三维实体长方体. ...

  4. keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...

    HI,大家好,我是星光,今天咱们来继续学习VBA.在上一章咱们讲了为什么要学习VBA~VBA还值不值得学~学了还有没有用~零基础学VBA编程01:VBA还能不能学?学了还有没有用? 这一章咱们再来简单 ...

  5. python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?

    转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...

  6. 第一门语言学python好_零基础学编程,哪一门语言比较适合入门?

    最近,有不少小伙伴问我,说零基础学编程,第一门语言学哪个好?有人推荐学Python,理由是Python简单,对新人友好,上手快,那Python到底适不合适新人学呢. 我今天就这个问题给大家稍微的展开一 ...

  7. c字符串中包含双引号_零基础学Python:一文看懂数字和字符串

    来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...

  8. python培训一般多久_零基础学python需要多久

    一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...

  9. python 智能造句_[零基础学Python]正规地说一句话

    小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...

最新文章

  1. python utf-8编码转换中文_python实现unicode转中文及转换默认编码的方法
  2. 请简单解释一下ARP协议和ARP攻击
  3. 转: 记录centos7 安装erlang22.3和rabbitMQ
  4. 如何在labview中用c语言编程,编程语言之争:LabVIEW还是C语言?-测试测量-与非网...
  5. SpringBoot 2.x 使用Redis作为项目数据缓存
  6. SQL Server 2008 评估期已过解决方法
  7. 快速列出所有字段_【小麦课堂】快速查询明细数据的操作
  8. 即时语音提示软件php,InsTalk即时语音提示校对软件(语音识别和语音合成软件)
  9. FMX控件演示(FireMonkey ControlsDemo)
  10. MATLAB取整及位数
  11. Speed Gear(变速精灵XP) V6.0 - 免费版,破解版,绿色版
  12. [从零开始学习FPGA编程-34]:进阶篇 - 基本时序电路-计数器(Verilog语言)
  13. 5G无线采集网关 poe供电
  14. 14.SQL必知必会第15课 插入数据(数据库的备份insert into ... values表的复制操作)
  15. matlab 曲线收敛,BP神经网络学习曲线收敛问题
  16. Q learning
  17. 对谈Jason Fox:如何导向探索
  18. 慕思披露招股书,智慧床垫能成为后来者追赶的助燃剂吗?
  19. 操作系统-期末知识点第一章
  20. osgEarth示例分析——osgearth_minimap

热门文章

  1. 在 CUDA C/C++ kernel中使用内存
  2. 客快物流大数据项目(十一):Docker应用部署
  3. 牛客网里刷题:JS获取输入的数组
  4. ValueError: not enough values to unpack (expected 2, got 1)
  5. Dialog 带白色的边的处理方法
  6. 中国顶级黑客45秒使用声音来破坏您的计算机
  7. 开源分布式数据库中间件
  8. 【转载】 stm32之PWM
  9. delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题
  10. Tips——IndexSearcher自动更新