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

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

……

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

最新文章

  1. Linux 之 shell 比较运算符
  2. JDBC的应用
  3. hdu 5748(求解最长上升子序列的两种O(nlogn)姿势)
  4. Eclipse插件项目 引用其他类库的方法(jar)
  5. 【linux】 静态库编译
  6. 几道hihocoder不会做的题
  7. 零基础Visual Fox Pro 6.0自学笔记(VFP6.0图文教程)
  8. 学学Whatsapp,如何让自己挣160亿美金,然后退休?开发个J2ME应用。
  9. 微信开发-Jssdk调用分享实例
  10. Dom4j分解xml
  11. GCD之after
  12. js面向对象学习笔记(五):tab切换
  13. 使用Intellij IDEA生成JavaDoc
  14. UIKit中ImageView动画堆叠显示的微调整
  15. selenium IDE工具页面介绍!
  16. 在ConoHa上Centos7环境下源码安装部署LNMP
  17. STDIN_FILENO和stdin
  18. python入门学习记录(win7+python3.6)
  19. Educational Codeforces Round 26 E - Vasya's Function
  20. Sql Server 生成连续时间段

热门文章

  1. JS构造函数(便于理解,简易)
  2. <Android 基础(十八)> XLIFF
  3. Learn by pictures on Auto Control Fields
  4. AE常用代码(标注要素、AE中画带箭头的线、如何获得投影坐标、参考坐标、投影方式、FeatureCount注意事项)
  5. Java NIO(四) Scatter/Gather
  6. JsonConvert序列化问题
  7. 【MATLAB】R2017b两个镜像文件如何安装
  8. Oracle VM virtualBox -Centos6.4 安装后没有网解决方法
  9. Java—IO流 File类的常用API
  10. supervisor运行virtualenv环境下的nagios-api