说明:本文仅供学习交流,不得用于其它目的,转载请标明出处,欢迎转载!
switch...case...语句在C/C++/JAVA中是一个很常见的开关语句,当条件比较多的时候,如果用if...else...产生的if语句比较多。下面我们先举个例子,用我们最熟悉的编程语言(本文用C++)写出程序,再给出为对应的shell脚本语言编程的方式。任务如下:
a.用户输入一个分数(假如都是正整数)
b.判断:
(1)高于90分(含90),输出“grade A!"
(2)80-90分(含80),输出“ grade B!"
(3)60-80分(含60),输出“grade C!"
(4)低于60分,输出 “grade D!"
1.用C++语言实现如下:
#include<iostream>
using namespace std;
int main()
{
int score,ch;
cout<<"Please input a score:";
cin>>score;
ch=score/10;
switch(ch)
{
case 9:
cout<<"grade A!"<<endl;
break;
case 8:
cout<<"grade B!"<<endl;
break;
case 6:
cout<<"grade C!"<<endl;
break;
default:
cout<<"grade D!"<<endl;
break;
}
return 0;
}
2.shell脚本中的开关语句
语法:
case $变量名 in
match1)
...
;; (两个分号)
match2)
...
;;
match3)
...
;;
*)(相当于C/C++中的default)
...
;;
esac
注意:1.case后面的那个$一定不能省,否则程序结果会错!
2.最后那个esac是case的逆序。
现将1中的C++转换为对应的shell script如下: