本文所有内容均来自当年博主当年学习笔记,若有不足欢迎指正

Shell编程之case语句与函数

学习目标:

掌握case语句编程

掌握shell函数的使用

目录结构:

Case语句

Case语句的作用

l  使用case语句改写多分支可以使脚本结构更加清晰,层次分明

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

Case语句的结构

case 变量值 in

模式1)

命令序列1

;;

模式2)

命令序列2

;;

*)

默认命令序列

csac

case变量=模式1 ?是,则执行命令序列1,否,则判断变量=模式2 ?是,则执行命令序列2,否,则判断变量=模式3 ?是,则执行命令序列3,否,则执行默认命令序列。

实例:

l  击键类型识别脚本,判断输入的是字母还是数字还是其他字符

[root@poll ~]# vi a.sh

#!/bin/bash

#this is zifupanduan

read -p "请输入一个字符:" key

case $key in

[a-z]|[A-Z])

echo "您输入的是字母。"

;;

[0-9])

echo "您输入的是数字"

;;

[/]|[?]|[,])

echo "您输入的是$key"

;;

*)

echo "您输入的是其他字符"

esac

shell函数

l  将命令序列按格式写在一起

l  可方便重复使用命令序列

l  Shell函数定义

[function] 函数名(){

命令序列

[return x]

}

l  调用函数的方法

[root@poll ~]# vi sum.sh

#!/bin/bash

#this is SUM

SUM(){

echo "这是一个求和运算"

read -p "请输入第一个数:" A

read -p "请输入第二个数:" B

echo "你输入的两个数分别为:$A $B"

SUM=$(($A+$B))

echo "两个数的和为:$SUM"

#return $(($A+$B))

}

SUM

#echo "两个数的和为:$?"

l  Linux系统中有很多服务器启动脚本

定义了丰富的shell函数

嵌套了各种语句,如if语句等

可参考其编写的服务器启动脚本

[root@poll scripts]# vi /etc/init.d/network

……

if [ -f /etc/sysconfig/pcmcia ]; then

. /etc/sysconfig/pcmcia

fi

# Check that networking is up.

[ "${NETWORKING}" = "no" ] && exit 6

# if the ip configuration utility isn't around we can't function.

[ -x /sbin/ip ] || exit 1

CWD=$(pwd)

cd /etc/sysconfig/network-scripts

……

本章初步结束,下一节讲循环语句

03 shell编程之case语句与函数的更多相关文章

  1. bash编程之case语句,函数

    bash脚本编程:之case语句   条件测试: 0: 成功 1-255: 失败   命令: [ expression ] [[ expression ]] test expression   exP ...

  2. shell编程之case分支语句

    shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 ...

  3. shell编程之if语句

    shell编程之if判断 目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other 1.整数比较 -eq 等于,如:if [ "$ ...

  4. SHELL编程之case与函数

    一.case语句概述 使用case语句改写if多分支可以使脚本结构更加清晰.层次分明 针对变量不同取值,执行不同的命令序列 case语句结构如下: case 变量值  in 模式1) 命令序列1 ;; ...

  5. Shell编程之case条件

    一.case条件语句 1.语法 case "变量" in 值 1) 指令 1... ;; 值 2) 指令 2... ;; *) 指令 3... esac case条件语句的执行流程 ...

  6. shell脚本编程之for语句、if语句使用介绍

    介绍了shell脚本编程之for语句.if语句的使用方法. 上部: 面向过程: 顺序执行 选择执行: if, case 循环执行: for, while, until 一.for语句 格式:      ...

  7. shell编程之awk命令详解

    shell编程之awk命令详解 a:focus { outline: thin dotted #333; outline: 5px auto -webkit-focus-ring-color; out ...

  8. PHP Socket 编程之9个主要函数的使用之测试案例

    php的socket编程算是比较难以理解的东西吧,不过,我们只要理解socket几个函数之间的关系,以及它们所扮演的角色,那么理解起来应该不是很难了,在笔者看来,socket编程,其实就是建立一个网络 ...

  9. linux网络编程之shutdown() 与 close()函数详解

    linux网络编程之shutdown() 与 close()函数详解 参考TCPIP网络编程和UNP: shutdown函数不能关闭套接字,只能关闭输入和输出流,然后发送EOF,假设套接字为A,那么这 ...

随机推荐

  1. 16_Queue_利用wait()和notify()编写一个阻塞队列

    [线程间通信概念] 线程是操作系统中独立的个体,但这些个体如果不经过特殊的处理就不能成为一个整体,线程间的通信就成为整体必用方式之一.当线程存在通信指挥,线程间的交互性会更强大,在提高CPU利用率的同 ...

  2. haproxy学习——简介、基本配置(二)

    官网:http://www.haproxy.org/ 个人感觉haproxy学习的重点在于配置上,把配置文档搞懂了就明白大部分套路了.不过本篇内容属于入门学习:1.使用haproxy简单的实现负载均衡 ...

  3. Django问卷调查项目思路流程

    Django问卷调查项目思路流程: 1 后端思路 : 需求分析 ---- 找出各实体对应关系 ---- 设计model架构 ---- 统一资源封装 --- 提供资源API入口 ---- 设计项目实体功 ...

  4. MSSQL的SQL语句独立执行消耗与线上执行消耗差异

    环境: SQL Server 2012 疑问:同样的一条语句,使用Profile跟踪出来的消耗与单独拿出来执行的消耗存在非常大的差距 语句如下: declare @str nvarchar(max) ...

  5. C# 调用第三方DLL z

    http://blog.163.com/da7_1@126/blog/static/104072678201311721326318/ 以下代码为本人在实际项目中编写的调用第三方DLL接口程序的完整代 ...

  6. 再学UML-UML用例建模解析(一)

    UML(统一建模语言)是当前软件开发中使用最为广泛的建模技术之一,通过使用UML可以构造软件系统的需求模型(用例模型).静态模型.动态模型和架构模型.UML通过图形和文字符号来描述一个系统,它是绘制软 ...

  7. Windows 2012R2远程桌面服务部署环境简介

    一.部署环境 服务器名 所属域 IP地址 服务器用途 备注 AD01 CONTOSO.COM 192.168.1.1 域控制器 采用Windows Server 2012 R2 Datacenter ...

  8. March 5 2017 Week 10 Sunday

    If you do what you love, you will never work a day in your life. 做你所爱的事情,你就不会觉得是在工作. Today, one mach ...

  9. Android面试问题收集总结

    转载请标明出处: http://www.cnblogs.com/why168888/p/6405204.html 本文出自:[Edwin博客园] Android基础 View的绘制流程:自定义View ...

  10. sublime text3 英文版转为中文版

    第一步设置好:https://packagecontrol.io/installation#st3 简单几步 : 1. 点击菜单栏中“preferences”,弹出选项中找到“package cont ...