case条件语句的应用实践

case条件语句相当于多分支的if/elif/else的条件语句,但是它比这些条件语句看起来更规范更工整,常被应用于实现系统服务启动脚本等企业应用场景中。

当case执行一个相匹配的表达式之后会跳出case的语句。

如果没有匹配变量任何值,则执行*)后面的指令,直到遇到双分号(;;)

case条件语句的语法格式为:

case “变量” in

值1)

指令...

;;

值2)

指令...

;;

*)

指令3...

esac

例如:

#!/bin/bash

read -p "plz input a num:" num

case "$num" in
  1)
    echo "the num is $num"
    ;;
  2)
    echo "the num is $num"
    ;;
  [3-9])
    echo "the num is $num"
    ;;
  *)
    echo "plz input [0-9] int"
esac

执行shell脚本,打印一个如下的水果菜单;

apple

pear

banana

cherry

#!/bin/bash
cat << EOF

  1.apple
  2.pear
  3.banana
  4.cherry
EOF

read -p "plz input your choice:" hh

case "$hh" in
  1)
    echo -e "\E[1;31m apple\E[0m"
    ;;
  2)
    echo -e "\E[1;33m pear\E[0m"
    ;;
  3)
    echo -e "\E[1;34m banana\E[0m"
    ;;
  4)
    echo -e "\E[1;35m cherry\E[0m"
    ;;
  *)
    echo -e "\E[1;36m plz inpit num\E[0m"
esac
~

这里有加颜色的字符用法:

echo  -e  "\E[1;31m char\E[0m" #\E可以使用\033代替,数字1表示加粗,31表示红色,其他颜色使用3[2-7]表示,[0m表示结束

脚本里面还可以这样写

#!/bin/bash

red="\E[1;31m"
green="\E[1;32m"
yellow="\E[1;33m"
res="\E[0m"
echo -e "$red hongse"$res""
echo -e "$green chengse"$res""
echo -e "$yellow huangse"$res""

如何要调整背景颜色将上面的1修改为40~47

结合case语句给输出的字符串加颜色

要求:使用case语句及通过脚本传入指定的内容和指定颜色,在脚本命令行传入两个参数,并给指定颜色;

#!/bin/bash

bb() {
    echo "plz input two arge"
    exit 3
}
aa() {
 red="\E[43;31m"
 green="\E[41;32m"
 yellow="\E[46;33m"
 res="\E[0m"
#echo -e "$red hongse"$res""
#echo -e "$green chengse"$res""
#echo -e "$yellow huangse"$res""

case "$2" in
  red|RED)
    echo -e "$red$1$res"
    ;;
  green|GREEN)
    echo -e "$green$1$res"
    ;;
  yellow|YELLOW)
    echo -e "$yellow$1$res"
    ;;
  *)
    echo "plz input (rea|green|yellow)"
esac
}

main() {
 if [ $# -ne 2 ]; then
   bb
 fi
aa $1 $2
}
main $*

范例9-8:已知Nginx Web服务的管理命令如下

启动脚本命令为/application/nginx/sbin/nginx

停止脚本命令为/application/nginx/sbin/nginx -s nginx

请用case语句开发脚本,以实现nginx服务启动及关闭功能,具体脚本命令为/etc/init.d/nginx {start|stop|restart},并实现通过chkconfig进行开机自启动的管理。

由于ubuntu里面没有/etc/init.d/functions这个文件,所以没加

#!/bin/bash

aa=/etc/init.d/nginx
path=/usr/sbin
if [ ! -f "/etc/init.d/nginx" ]; then
  echo "plz install nginx"
  exit 3
fi
#if [ "$#" -eq 0 -o "$#" -eq 2 ]; then
#  echo "this is good"
#else
#  exit 4       
#fi

start() {
  if [ "`ps -ef | grep nginx | wc -l`" -gt 2 ]; then
    echo "the nginx  service is starting"
    return 0
  else
    $path/nginx
    aa=$?
    if [ $aa -eq 0 ]; then
      echo "nginx  is started"   
    else
      echo "nginx is started"  
    fi
  fi

}
stop() {
 if [ "`ps -ef | grep nginx | wc -l`" -eq 1 ]; then
   echo "the nginx is stopped"
   return 0

 else
   $path/nginx -s stop
   bb=$?
   if [ $bb -eq 0 ]; then
     echo  "nginx is stopped"  
   else
     echo "nginx is  stopped"  

   fi
 fi
}
case "$1" in
  start)
    start
    ss=$?
    echo  $ss
    ;;
  stop)
    stop
    ss=$?
    echo  $ss
    ;;
  restart)
    stop
    sleep 2
    start
    ss=$?
    echo $ss
    ;;
  *)
    echo "this is not"
esac

原文地址:http://blog.51cto.com/11726212/2069250

时间: 2024-10-12 14:06:59

case条件语句的应用实践的相关文章

Shell语法—— case 条件语句

case 条件语句语法 case 条件语句语法格式为: case " 变量 " in 值 1) 指令 1 ;; 值 2) 指令 2 ;; \* ) 指令 3 ;; esac 了解即可 给字体加颜色的命令:例:echo -e "\E[1;31m 红颜色 hello world \E[0m" \E 等同于 \033 "[1" 数字 1 表示加粗显示 31m 表示红色字体 "[0m" 表示关闭所有属性 "[1m"

Linux Shell脚本编程case条件语句

1,判断一个数字是否则在1,2,3之中. #!/bin/bash read -p "pls input a number:" n case "$n" in 1) echo "变量是1" ;; 2) echo "变量是2" ;; 3) echo "变量是3" ;; *) echo "pls input a number between 1 and 3" exit; esac 2,多级if语

Shell中if条件语句的知识和实践

本文主要讲解if条件语句在shell的使用场景和示例 基本大纲: 1.if条件语句的语法 2.if条件语句多种条件表达式语法 3.单分支if条件语句实践 4.if条件语句的深入实践及场景使用 一:if条件语句的语法 1)单分支结构 第一种语法: if    <条件表达式> then 指令 fi 第二中语法: if    <条件表达式>:then 指令 fi 上面的"<条件表达式>"部分可以是test.[].[[]].(())等条件表达式,也可以直接使

九、while 条件循环语句、case 条件测试语句、计划任务服务程序

4.3.3 while条件循环语句 while条件循环语句是一种让脚本根据某些条件来重复执行命令的语句,它的循环结构往往在执行前并不确定最终执行的次数,完全不同于for循环语句中有目标.有范围的使用场景.while循环语句通过判断条件测试的真假来决定是否继续执行命令,若条件为真就继续执行,为假就结束循环.while语句的语法格式如图4-21所示. 图4-21  while循环语句的语法格式 接下来结合使用多分支的if条件测试语句与while条件循环语句,编写一个用来猜测数值大小的脚本Guess.

【编程题目】求1+2+…+n, 要求不能使用乘除法、for、while、if、else、switch、case和条件语句

看到这个问题,第一个反应是真变态啊. 然后,直觉是不能用循环就只能用递归了.可递归怎么跳出来却遇到了麻烦, 我连goto语句都考虑了也没弄好. 后来想到一个非常NC的方法:查找表. 如果n限定一个比较小的范围直接用查找表好了. 但题目的目的肯定不是这样的..... 后来,我转换了一下思路 1+2...+n = (n*n + n)>>1  只要求出n*n来就好了, 但问题是不能用乘法,于是硬件出身的我想到了二进制&,|,>>,<<都是可以用的. 思路:设n = 5

pb中的条件语句,if else,choose case ,for

顾名思义下面这些语句的作用就是对某一个或者一些值进行判断,然后根据判断结果进行下一步的操作. 一.IF条件语句 1. 单行IF ... THEN语句 IF  condition THEN 语句1   [ELSE 语句2] 单行IF ... THEN语句书写时整条语句写在一行上,当逻辑表达式的结果为True时执行语句1,否则执行语句2. 例如:IF sle_State.text="BJ" THEN   MessageBox("欢迎","北京")2.

条件语句&amp;CASE表达式语法

一 条件语句 1. 语法: IF <布尔表达式> THEN PL/SQL 和 SQL语句END IF;-----------------------IF <布尔表达式> THEN PL/SQL 和 SQL语句ELSE 其它语句END IF;-----------------------IF <布尔表达式> THEN PL/SQL 和 SQL语句ELSIF < 其它布尔表达式> THEN 其它语句ELSIF < 其它布尔表达式> THEN 其它语句

第六章—条件语句和循环

6.1①条件语句在脚本中称为控制流.②尽管JavaScript不支持"elseif"关键字,但是允许通过if/else语句链创建这种类型的语句.③switch条件语句中default项中也用上break语句,因为如果它没有在最后,后面的case依然会执行.④如果case中没有default,而它又不是最后一个,则称为fall through(落空)⑤条件运算符(也称为三元运算符): 6.2提示框获得用户输入: var username=window.prompt("Give

Python成长之路第一篇(4)_if,for,while条件语句

有了以上的基本基础,已经上面写的几个小练习,大家肯定有很多的不满,比如查询为什么查询一次就退出了呢?下面我们来学习条件语句 一.万恶的加号 以前我们在print的时候如果要加上变量都有是使用+来作为连接,但是这样做是不好的 因为在使用加号的时候,会在内存中开辟新的内存地址来存放新的内容这样做的坏处就是增加了内存的消耗 那么我们该怎么办呢? (1)字符串格式化 ①内置占位符 Python 支持格式化字符串的输出 .尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符