这一期将要学习case分支语句与函数,主要分为以下几个章节:,下面我们就来说一说关于shell脚本的规划与技巧?我们一起去了解并探讨一下这个问题吧!

shell脚本的规划与技巧(每天2分钟学习unixlinux系统shell编程)

shell脚本的规划与技巧

这一期将要学习case分支语句与函数,主要分为以下几个章节:

  1. case的基本语法
  2. 函数的定义
  3. 函数的使用
  4. 本期示例
一、case的基本语法

case语句是可以同时对多个条件进行判断和处理的,下面看语法:

case $变量 in 匹配值1 ) 代码块1 ;; 匹配值2 | 匹配值3 | 匹配值4 ) 代码块2 ;; 匹配值5) 代码块3 ;; *) 代码块4 ;; esac

说明:

二、函数的定义

函数就是一批shell命令或者代码的集合片段,这个代码集合片段共同完成指定的某一件事情。好处是,提高代码复用,统一的输入和输出,通俗地讲当给定一些符合条件的值,那么函数将永远给你返回一样的输出结果。一般情况下,写代码一个函数最好不要超出50行。当超出之后建议把此函数拆分成更小的单元,使用函数功能更单一,复用度更高。

写代码最怕的就是一份代码到处复制,最后弄得遍地都是功能相似或者相等的代码片段或者版本出来,后来者维护就不好维护了。而解决这个问题就是把功能相似或者相等的代码版本段功能抽离出来,形成独立的函数。

基本定义语法:

函数名字() { 代码块 echo "response" return 0 }

说明:

三、函数的使用

函数的使用,直接写出函数名字就可以,函数是可以传参数的,在函数名字后加空格带上参数就可以,这种就直接调用不接收返回,而接收返回值就要使用$(函数名 $参数1 $参数2)的方式:

#定义 hello(){ echo "hello $1" } #使用 hello lin str=$(hello lin) echo $str

四、本期示例

输入学号输出名字,直接上代码:

#!/bin/bash getName(){ name="" case $1 in "1") name="xiao ming" ;; "2") name="xiao guang" ;; "3") name="xiao lin" ;; "4") name="xiao yu" ;; *) name="Unknown name" ;; esac echo $name return 0 } while : ;do number=0 echo "please input you number:" read -n 1 number name=$(getName $number) echo "" echo "you is $name" done

这一期就分享到这里感谢大家支持。

,