linux中的shell脚本case,Shell编程之case语句与循环语句
Shell编程之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
linux中的shell脚本case,Shell编程之case语句与循环语句相关推荐
- shell脚本求和_【零基础学云计算】Shell编程之case语句与循环语句
case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...
- shell编程之case语句及函数
shell编程之case语句 文章目录 shell编程之case语句 一.case语句 1. 语法结构 2. 应用案例 二.函数 1. 什么是函数? 2. 如何定义函数? 3. 函数如何调用? ㈠ 当 ...
- 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量
2019独角兽企业重金招聘Python工程师标准>>> 1.shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断. ...
- linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量
随着Linux系统在企业中的应用越来越多,服务器的自动化管理也变得越来越重要.在Linux服务器的自动化维护工作中,除了计划任务的设置以外,Shell脚本的应用也是非常重要的一部分.作为Linux系统 ...
- Linux中安装和使用Translate Shell
Translate Shell 是一个支持 Google Translate.Bing Translator.Yandex.Translate 和 Apertium 翻译引擎的命令行翻译器,默认使用的 ...
- linux中的sh脚本语法
linux中的sh脚本语法 玩linux都知道sh脚本的方便,但如何编写sh脚本却是像我这样的新手和菜鸟的难题.能不能编写得出来是一回事,了不了解又是另一回事.抱着好好学习,天天向上的精神,大家有空就 ...
- 【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )
文章目录 前言 一.Linux 中调用 Groovy 脚本 二.Windows 中调用 Groovy 脚本 前言 在 命令行 , Groovy 脚本 , Groovy 类 , Java 类中 , 可以 ...
- shell条件语句及循环语句
if 语句的结构 在 Shell 脚本应用中,if 语句是最为常用的一种流程控制方式,用来根据特定的条件测试结果,分别执行不同的操作(如果--那么--).根据不同的复杂程度,if 语句的选择结构可以分 ...
- Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享
目录 为什么系统软件人员要深入了解cache? cache一致性协议 神马是MESI协议? MESI的操作 MESI状态图 演示:初始化状态为I的cache line 当本地CPU的缓存行状态为I时, ...
- Linux内存管理:ARM64体系结构与编程之cache(2):cache一致性
<Linux内存管理:ARM64体系结构与编程之cache(1)> <Linux内存管理:ARM64体系结构与编程之cache(2)> <ARM SMMU原理与IOMMU ...
最新文章
- 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组
- HDLBits 系列(39)求解带有奇校验的串口接收数据的简化电路设计
- Linux下安全扫描工具Nmap用法详解
- ElementUI中对el-table的某一列的时间进行格式化
- linux python pymssql,Linux下安装pymssql及简单尝试
- 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM
- 【Spring reference】@ResponseBody注解
- U102488-傻叉题【dp】
- 北交计算机学硕培养计划,北京交通大学硕士研究生培养方案——交通信息工程及控制...
- mysql -连表查询
- 基于集成学习的小麦赤霉病高光谱图像识别方法研究
- (转)C# Enum,Int,String的互相转换 枚举转换
- Android完全关闭(退出)应用程序
- 【Hive】Hive表数据的导入导出
- VMware ESXI 5.5 注册码
- 判断一个数是否为质数(素数)的4种方法
- 宝塔服务器之堡塔应用管理器的使用【php消息队列】
- 通过top查看程序cpu使用率为什么会超过100%
- 苹果设计思维案例研究,困难期生存的关键
- java发送短信 短信平台
热门文章
- 查找重复代码_word高效操作:如何快速删除重复段落
- TypeScript:函数进阶
- 面向对象(Python):学习笔记之面向对象基础
- 理解WebSocket心跳及重连机制以及加强版的reconnectingwebsocket.js实现
- 综述 | 基于特征的视觉同步定位和建图
- ​知者见于未萌:百度CTO王海峰与中国 AI 三十年
- 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。(C++实现)
- plupload2.1.2文件合并
- Codeforces Round #359 (Div. 2) C. Robbers' watch DFS
- Kinect 深度测量原理