if…then
if判断式的格式有如下三种。
第一种,单层、简单条件判断式
if [ 条件判断 ]; then
当条件判断式成立时,可以进行的命令工作内容;
fi <==将if反过来写,就称为fi,结束if之意。
第二种,一个条件判断
if [ 条件判断 ]; then
当条件判断式成立时,可以进行的命令工作内容;
else
当条件判断式不成立时,可以进行的命令工作内容;
fi <==将if反过来写,就称为fi,结束if之意。
第三种,多个条件判断
if [ 条件判断式1 ]; then
当条件判断式1成立时,可以进行的命令工作内容;
elif [ 条件判断式2 ]; then
当条件判断式2成立时,可以进行的命令工作内容;
else
当条件判断式不成立时,可以进行的命令工作内容;
fi <==将if反过来写,就称为fi,结束if之意
case…esac
case的语法格式如下:
case $变量名称 in <==关键字为case,还有变量前有$
"第一个变量内容") <==每个变量内容建议用双引号括起来,关键字为小括号')'
程序段
;; <==每个类型结尾使用两个连续的分号来处理!
"第二个变量内容")
程序段
;;
*) <==最后一个变量内容都会用*来代表所有其它值
程序段
exit 1
;;
esac <==最终的case结尾,“反过来写”而已。
一个简单的例子如下:
function print_message () {
echo "my name is $1, and my studentnum is $2"
}
read -p "Please input your name: " name
case $name in
"jimmy")
print_message jimmy 111000623
;;
"xiaohong")
print_message xiaohong 11100624
;;
*)
print_message wuming null
exit 1
;;
esac
执行过程如下:
root@silent:/home/lianxi/shell# ./case.sh
Please input your name: jimmy
my name is jimmy, and my studentnum is 111000623
root@silent:/home/lianxi/shell#
root@silent:/home/lianxi/shell#
root@silent:/home/lianxi/shell# ./case.sh
Please input your name: uuuu
my name is wuming, and my studentnum is null