最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

linux与fortran之case语句详解

XAMPP下载 中文小张 1327浏览 0评论

shell之case语句

case语句语法:

case $变量名 in 

    模式1) 

    命令序列1 

    ;; 

    模式2) 

    命令序列2 ;; 

    *) 

    默认执行的命令序列      

    ;; 

esac 

 

 

case语句结构特点如下:

 

 (1)case行尾必须为单词 in 每个模式必须以右括号 ) 

    (2)结束双分号 ;; 表示命令序列结束

    (3)匹配模式中可是使用方括号表示一个连续的范围,如[0-9];使用竖杠符号“|”表示或。最后的“*)”表示默认模式,当使用前面的各种模式均无法匹配该变量时,将执行“*)”后的命令序列 

 

[root@localhost fortran]# cat test
#!/bin/bash
read -p "Please input :" pd
case $pd in
	    [a-z]|[A-Z])
		        echo "this is a letter."
		        ;;
	    [0-9])
		        echo "this is a digit."
		        ;;
	    *)
		        echo "It's others."
esac

[root@localhost fortran]# ./test
Please input :2
this is a digit.


[root@localhost fortran]# ./test
Please input :a
this is a letter.


[root@localhost fortran]# ./test
Please input :A
this is a letter.                  
 
[root@localhost fortran]# cat shell_case  #好像不能这样用,是否可解
#! /bin/bash
read -p "Please input score: " SCORE
case "$SCORE" in
  [90-100])
		    echo "grade: A"
		    ;;
	  [80-89])
		    echo "grade: B"
    ;;
	  [70-79])
		    echo "grade: C"
    ;;
	  [60-69])
		    echo "grade: D"
    ;;
	  [0-59])
		    echo "grade: E"
    ;;
	  *)
		    echo "this is a bug"
esac 


case语句常见于一些服务的启动脚本,如mysql、nginx等
[root@localhost 3306]# cat mysql
#!/bin/bash

port=3306
mysql_user="root"
mysql_pwd="yanjiaxi"
CmdPath="/application/mysql/bin"
mysql_sock="/data/${port}/mysql.sock"
#startup function
............
case $1 in
start)
    start_mysql
   ;;
stop)
    stop_mysql
   ;;
restart)
    restart_mysql
   ;;
*)
    printf "Usage: /data/${port}/mysql {start|stop|restart}\n"
esac

[root@localhost fortran]# ./test2
    1.Math
    2.English
    3.Physics
   4.Chemistry
Please choose your course:1
Math


[root@localhost fortran]# cat test2
#!/bin/bash
#关于颜色的控制输出,百度,即用即搜
RED_COLOR='\E[1;31m'
GREEN_COLOR='\E[1;32m'
YELLOW_COLOR='\E[1;33m'
BLUE_COLOR='\E[1;34m'
RES='\E[0m'

function usage(){
    echo "USAGE: $0 {1|2|3|4}"
    exit 1
}

function menu(){ #定义菜单
     cat <<END
    1.Math
    2.English
    3.Physics
   4.Chemistry
END
}

function chose(){
    read -p "Please choose your course:" COURSE
    case "$COURSE" in
        1)
          echo -e "${RED_COLOR}Math${RES}"
          ;;
        2)
          echo -e "${GREEN_COLOR}English${RES}"
          ;;
        3)
          echo -e "${YELLOW_COLOR}Physics${RES}"
          ;;
        4)
         echo -e "${YELLOW_COLOR}Chemistry${RES}"
          ;;
        *)
          usage
    esac
}

function main(){
    menu
    chose
}
main

[root@localhost fortran]# ./test2
    1.Math
    2.English
    3.Physics
   4.Chemistry
Please choose your course:4
Chemistry

[root@localhost fortran]# ./test2
    1.Math
    2.English
    3.Physics
   4.Chemistry
Please choose your course:3
Physics

[root@localhost fortran]# ./test2
    1.Math
    2.English
    3.Physics
   4.Chemistry
Please choose your course:2
English

[root@localhost fortran]# ./test2
    1.Math
    2.English
    3.Physics
   4.Chemistry
Please choose your course:1
Math

转载请注明:XAMPP中文组官网 » linux与fortran之case语句详解

您必须 登录 才能发表评论!