shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句
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语句与循环语句相关推荐
- python提供两种基本循环结构_零基础学python 12 程序不枯燥:for循环结构(课后习题)...
上节课我们一起学习了咱们的for循环结构,这节课咱们来就之前学过的知识做一下习题吧: 1. 主题: Duck, Duck, Goose! 假设你在一个家禽农场工作,需要计算从传送带传下来的动物数量(不 ...
- python制作软件很复杂_零基础学Python难吗,或者有什么其他数据加工软件推荐?...
之前因为一个问题的回答:零基础想系统的学习金融学.量化投资.数据分析.Python,需要哪些课程和书籍.获赞1000+.大概整理一下之前的答案,回答下这个问题. 金融领域的量化分析如今是很受重视的,所 ...
- 地图画指定区域_零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境...
嘉灏今天分享第十课零基础学零基础学CAD绘制一张桌子为例,使亲们更好地熟悉三维绘图环境的知识了解,有视频课程,亲们可以看视频教程,再次感谢大家的支持与信任. 桌子 BOX(命令) 创建三维实体长方体. ...
- keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...
HI,大家好,我是星光,今天咱们来继续学习VBA.在上一章咱们讲了为什么要学习VBA~VBA还值不值得学~学了还有没有用~零基础学VBA编程01:VBA还能不能学?学了还有没有用? 这一章咱们再来简单 ...
- python语言程序设计难不难_零基础学Python编程开发难度大吗?从哪学起?
转行零基础学Python编程开发难度大吗?从哪学起? 近期很多小伙伴问我,如果自己转行学习Python,完全0基础能否学会呢?Python的难度到底有多大? 今天,小编就来为大家详细解读一下这个问题. ...
- 第一门语言学python好_零基础学编程,哪一门语言比较适合入门?
最近,有不少小伙伴问我,说零基础学编程,第一门语言学哪个好?有人推荐学Python,理由是Python简单,对新人友好,上手快,那Python到底适不合适新人学呢. 我今天就这个问题给大家稍微的展开一 ...
- c字符串中包含双引号_零基础学Python:一文看懂数字和字符串
来源:大数据DT 本文约2000字,建议阅读6分钟 数据类型是构成编程语言语法的基础.[ 导读 ]数据类型是构成编程语言语法的基础.不同的编程语言有不同的数据类型,但都具有常用的几种数据类型.Pyth ...
- python培训一般多久_零基础学python需要多久
一:明确自己的学习目标.不管我们学习什么样的知识,都要对自己的学习目标有一个明确的认识.只有这样才能朝着目标持续的前进,少走弯路,从而在学习的过程中得到提升,享受整个学习的乐趣. 二:基础的Pytho ...
- python 智能造句_[零基础学Python]正规地说一句话
小孩子刚刚开始学说话的时候,常常是一个字一个字地开始学,比如学说"饺子",对他/她来讲,似乎有点难度,大人也聪明,于是就简化了,用"饺饺"来代替,其实就是让孩子 ...
最新文章
- python utf-8编码转换中文_python实现unicode转中文及转换默认编码的方法
- 请简单解释一下ARP协议和ARP攻击
- 转: 记录centos7 安装erlang22.3和rabbitMQ
- 如何在labview中用c语言编程,编程语言之争:LabVIEW还是C语言?-测试测量-与非网...
- SpringBoot 2.x 使用Redis作为项目数据缓存
- SQL Server 2008 评估期已过解决方法
- 快速列出所有字段_【小麦课堂】快速查询明细数据的操作
- 即时语音提示软件php,InsTalk即时语音提示校对软件(语音识别和语音合成软件)
- FMX控件演示(FireMonkey ControlsDemo)
- MATLAB取整及位数
- Speed Gear(变速精灵XP) V6.0 - 免费版,破解版,绿色版
- [从零开始学习FPGA编程-34]:进阶篇 - 基本时序电路-计数器(Verilog语言)
- 5G无线采集网关 poe供电
- 14.SQL必知必会第15课 插入数据(数据库的备份insert into ... values表的复制操作)
- matlab 曲线收敛,BP神经网络学习曲线收敛问题
- Q learning
- 对谈Jason Fox:如何导向探索
- 慕思披露招股书,智慧床垫能成为后来者追赶的助燃剂吗?
- 操作系统-期末知识点第一章
- osgEarth示例分析——osgearth_minimap
热门文章
- 在 CUDA C/C++ kernel中使用内存
- 客快物流大数据项目(十一):Docker应用部署
- 牛客网里刷题:JS获取输入的数组
- ValueError: not enough values to unpack (expected 2, got 1)
- Dialog 带白色的边的处理方法
- 中国顶级黑客45秒使用声音来破坏您的计算机
- 开源分布式数据库中间件
- 【转载】 stm32之PWM
- delphi 10 seattle 中 解决IOS 9 限制使用HTTP 服务问题
- Tips——IndexSearcher自动更新