shell编程之case语句

bash脚本编程:

case语句:

多分支if语句:

if CONDITION1; then

分支1

elif  CONDITION2; then

分支2

...

else CONDITION; then

分支n

fi

示例1:显示一个菜单给用户;

cpu) display cpu information

mem) display memory information

disk) display disks information

quit) quit

要求:(1) 提示用户给出自己的选择;

(2) 正确的选择则给出相应的信息;否则,则提示重新选择正确的选项;

#!/bin/bash

#

cat << EOF

cpu) display cpu information

mem) display memory infomation

disk) display disks information

quit) quit

===============================

EOF

read -p "Enter your option: " option

while [ "$option" != "cpu" -a "$option" != "mem" -a "$option" != "disk" -a "$option" != "quit" ]; do

echo "cpu, mem, disk, quit"

read -p "Enter your option again: " option

done

if [ "$option" == "cpu" ]; then

lscpu

elif [ "$option" == "mem" ]; then

free -m

elif [ "$option" == "disk" ]; then

fdisk -l /dev/[hs]d[a-z]

else

echo "quit"

exit 0

fi

case语句的语法格式:

case  $VARAIBLE  in

PAT1)

分支1

;;

PAT2)

分支2

;;

...

*)

分支n

;;

esac

case支持glob风格的通配符:

*:任意长度的任意字符;

?:任意单个字符;

[]:范围内任意单个字符;

a|b:a或b;

示例:写一个服务框架脚本;

$lockfile,  值/var/lock/subsys/SCRIPT_NAME

(1) 此脚本可接受start, stop, restart, status四个参数之一;

(2) 如果参数非此四者,则提示使用帮助后退出;

(3) start,则创建lockfile,并显示启动;stop,则删除lockfile,并显示停止;restart,则先删除此文件再创建此文件,而后显示重启完成;status,如果lockfile存在,则显示running,否则,则显示为stopped.

#!/bin/bash

#

# chkconfig: - 50 50

# description: test service script

#

prog=$(basename $0)

lockfile=/var/lock/subsys/$prog

case $1  in

start)

if [ -f $lockfile ]; then

echo "$prog is running yet."

else

touch $lockfile

[ $? -eq 0 ] && echo "start $prog finshed."

fi

;;

stop)

if [ -f $lockfile ]; then

rm -f $lockfile

[ $? -eq 0 ] && echo "stop $prog finished."

else

echo "$prog is not running."

fi

;;

restart)

if [ -f $lockfile ]; then

rm -f $lockfile

touch $lockfile

echo "restart $prog finished."

else

touch -f $lockfile

echo "start $prog finished."

fi

;;

status)

if [ -f $lockfile ]; then

echo "$prog is running"

else

echo "$prog is stopped."

fi

;;

*)

echo "Usage: $prog {start|stop|restart|status}"

exit 1

esac

时间: 2024-10-21 19:15:19

shell编程之case语句的相关文章

Shell编程之case语句与循环语句

case语句分支 1.case语句的结构 case 变量值 in模式 1)命令序列 1;;模式 2)命令序列 2;;......*)默认命令序列esac case分支语句的结构图使用case分支语句的注意点:1.case行尾必须为单词"in",每一个模式必须以右括号")"结束.2.双分号";;"表示命令序列的结束.3.模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以用竖杠符号"|"表示

shell编程之case分支语句

shell编程之case分支语句 case分支语句和if的多分支语句很相似. if多分支语句一般用在有(区间范围)的地方 :例如:0-100之间. if需要判断多个不同的条件. case的分支语句用在 如果里面匹配到固定值:或某个变量存在多中取值,需要对其中的每一个取值分别执行不同的命令序列. case只是判断一个变量的不同取值. case的模式: 执行流程: 首先使用"变量值"与模式1进行比较,如果取值相同就执行模式1的命令序列1,直到遇见" ;; "后跳转到es

shell编程之if语句

目录 shell编程之if判断 1.整数比较 2.字符串比较 3.举例 1.数字比较 2.字符串比较 4.Other shell编程之if判断 1.整数比较 -eq 等于,如:if [ "$a" -eq "$b" ] -ne 不等于,如:if [ "$a" -ne "$b" ] -gt 大于,如:if [ "$a" -gt "$b" ] -ge 大于等于,如:if [ "$a&

Shell编程之case多分支语句、循环语句(for、while等)、Shell函数、Shell数组

case多分支语句 case语句的结构: 针对变量的不同取值,分别执行不同的命令列 case 变量值 in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; ..... *) 默认命令序列 esac 示例: 字符类型识别: 提示用户输入一个字符: 判断出该字符是字母.数字或者其他字符. 脚本如下: [[email protected] opt]# vim test01.sh #!/bin/bash read -p "请输入一个字符:" key case $key in [a-z]

SHELL编程之case与函数

一.case语句概述 使用case语句改写if多分支可以使脚本结构更加清晰.层次分明 针对变量不同取值,执行不同的命令序列 case语句结构如下: case 变量值  in 模式1) 命令序列1 ;; 模式2) 命令序列2 ;; *) 默认命令序列 esac 1 #!/bin/bash 2 read -p "请输入一个字符: " key 3 case "$key" in 4 [a-z]|[A-Z]) #假如变量$key在26个大小写英文字母中 5 echo &quo

bash脚本编程之case语句及脚本选项进阶

case语句及脚本选项进阶详解     面向过程程序设计语言中的控制流(即程序当中的语句)默认是顺序执行的. 程序设计语言的控制结构一共有三类: 1,顺序结构 2,选择结构 (1)if语句 ->单分支的if语句 格式:if condition1;then expression ... fi ->双分支的if语句 格式:if condition1;then expression ... else expression ... fi ->多分支的if语句 格式:if condition1;t

编程之case语句

一.使用$random变量随机取10个随机数,进行最大值和最小值对比 #!/bin/bash # declare -i MAX=0 for I in {1..10};do    MYRANDOM=$RANDOM    [ $I -eq 1 ] && MIN=$MYRANDOM;    if [ $I -le 9 ];then         echo -n "$MYRANDOM,"    else         echo  "$MYRANDOM"

bash编程之case语句

一.语法格式 case 变量引用(${}) in value1)    #变量的值是value1,则执语句1,语句2,······ 语句1 语句2 ······ ;;    #每个分支结束时都需要以双分号结尾 value2)    #变量的值是value2,则执语句3,语句4,······ 语句3 语句4 ······ ;; value3)    #变量的值是value3,则执语句5,语句6,······ 语句5 语句6 ······ ;; *)    #其他任意情况,则执行语句7,语句8,··

bash脚本编程之case语句

case语句用于简化复杂的if语句 #!/bin/bash while true; do   read -p "Enter your score:" score   if [ "$score" == "quit" ]; then           exit 0   elif [ $score -lt 60 ]; then           echo "stupid"           break   elif [[ $s