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语句与循环语句相关推荐

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

    case多分支语句 循环语句 for循环语句 while循环语句 untli循环语句 Shell函数 Shell数组 case语句的结构 针对变量的不同取值,分别执行不同的命令序列 case 变量值 ...

  2. shell编程之case语句及函数

    shell编程之case语句 文章目录 shell编程之case语句 一.case语句 1. 语法结构 2. 应用案例 二.函数 1. 什么是函数? 2. 如何定义函数? 3. 函数如何调用? ㈠ 当 ...

  3. 69:shell脚本介绍 | shell脚本结构 | 执行data命令用法 | shell脚本中变量

    2019独角兽企业重金招聘Python工程师标准>>> 1.shell脚本介绍: shell是一种脚本语言和传统的开发语言相比,会比较简单: shell有自己语法,可以支持逻辑判断. ...

  4. linux shell脚本 定义变量,Shell脚本应用 - 编制shell脚本、shell变量

    随着Linux系统在企业中的应用越来越多,服务器的自动化管理也变得越来越重要.在Linux服务器的自动化维护工作中,除了计划任务的设置以外,Shell脚本的应用也是非常重要的一部分.作为Linux系统 ...

  5. Linux中安装和使用Translate Shell

    Translate Shell 是一个支持 Google Translate.Bing Translator.Yandex.Translate 和 Apertium 翻译引擎的命令行翻译器,默认使用的 ...

  6. linux中的sh脚本语法

    linux中的sh脚本语法 玩linux都知道sh脚本的方便,但如何编写sh脚本却是像我这样的新手和菜鸟的难题.能不能编写得出来是一回事,了不了解又是另一回事.抱着好好学习,天天向上的精神,大家有空就 ...

  7. 【Groovy】Groovy 脚本调用 ( Linux 中调用 Groovy 脚本 | Windows 中调用 Groovy 脚本 )

    文章目录 前言 一.Linux 中调用 Groovy 脚本 二.Windows 中调用 Groovy 脚本 前言 在 命令行 , Groovy 脚本 , Groovy 类 , Java 类中 , 可以 ...

  8. shell条件语句及循环语句

    if 语句的结构 在 Shell 脚本应用中,if 语句是最为常用的一种流程控制方式,用来根据特定的条件测试结果,分别执行不同的操作(如果--那么--).根据不同的复杂程度,if 语句的选择结构可以分 ...

  9. Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享

    目录 为什么系统软件人员要深入了解cache? cache一致性协议 神马是MESI协议? MESI的操作 MESI状态图 演示:初始化状态为I的cache line 当本地CPU的缓存行状态为I时, ...

  10. Linux内存管理:ARM64体系结构与编程之cache(2):cache一致性

    <Linux内存管理:ARM64体系结构与编程之cache(1)> <Linux内存管理:ARM64体系结构与编程之cache(2)> <ARM SMMU原理与IOMMU ...

最新文章

  1. 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组
  2. HDLBits 系列(39)求解带有奇校验的串口接收数据的简化电路设计
  3. Linux下安全扫描工具Nmap用法详解
  4. ElementUI中对el-table的某一列的时间进行格式化
  5. linux python pymssql,Linux下安装pymssql及简单尝试
  6. 【推荐系统】深入理解推荐系统:无需人工特征工程的xDeepFM
  7. 【Spring reference】@ResponseBody注解
  8. U102488-傻叉题【dp】
  9. 北交计算机学硕培养计划,北京交通大学硕士研究生培养方案——交通信息工程及控制...
  10. mysql -连表查询
  11. 基于集成学习的小麦赤霉病高光谱图像识别方法研究
  12. (转)C# Enum,Int,String的互相转换 枚举转换
  13. Android完全关闭(退出)应用程序
  14. 【Hive】Hive表数据的导入导出
  15. VMware ESXI 5.5 注册码
  16. 判断一个数是否为质数(素数)的4种方法
  17. 宝塔服务器之堡塔应用管理器的使用【php消息队列】
  18. 通过top查看程序cpu使用率为什么会超过100%
  19. 苹果设计思维案例研究,困难期生存的关键
  20. java发送短信 短信平台

热门文章

  1. 查找重复代码_word高效操作:如何快速删除重复段落
  2. TypeScript:函数进阶
  3. 面向对象(Python):学习笔记之面向对象基础
  4. 理解WebSocket心跳及重连机制以及加强版的reconnectingwebsocket.js实现
  5. 综述 | 基于特征的视觉同步定位和建图
  6. ​知者见于未萌:百度CTO王海峰与中国 AI 三十年
  7. 给定一个链表,删除链表的倒数第 n 个节点,并且返回链表的头结点。(C++实现)
  8. plupload2.1.2文件合并
  9. Codeforces Round #359 (Div. 2) C. Robbers' watch DFS
  10. Kinect 深度测量原理