shell编程——条件执行

简介:

我们知道程序无非三种执行方式——顺序、条件、循环。顺序就是一条一条的执行,是一马平川;条件就是个十字路口,根据条件决定自己的走向;循环就是笨驴拉磨,一圈一圈的走,知道达到条件终止。现在集中shell中的条件执行。

存在两个模式:

  • if...then...fi
  • case...esac

if...then...fi模式

基本语法:

if [ 条件表达式 ]; then
    条件满足时可执行的命令
fi

例子:

提示输入“Y"、“y"、“N"、“n".要是输入的“Y"或“y"则输出”Continue!";要是输入的“N"或“n"则输出”Oh,  You input No!";否则输出“Input Wrong".

复制代码
#!bin/bash
read -p "Please input Y y N or n:" yn
if [ $yn == Y ] || [ $yn == y ]; then
    echo "Continue!"
    exit 1
fi
if [ $yn == N ] || [ $yn == n ]; then
    echo "Oh, You input No!"
    exit 1
fi

echo "Input Wrong"
复制代码

这样看上去有点冗余(比如 exit 1),可以用下面的模式简化

复制代码
if [ 条件1 ]; then
    满足条件1时执行1
elif [ 条件2 ]: then
    满足条件2时执行2
 .
 .
 .
else
    以上n-1个条件都不满足,执行n
fi
复制代码

这样上面的程序简化下:

复制代码
#!bin/bash
read -p "Please input Y y N or n:" yn
if [ $yn == Y ] || [ $yn == y ]; then
    echo "Continue!"
elif [ $yn == N ] || [ $yn == n ]; then
    echo "Oh, You input No!"
else
    echo "Input Wrong"
fi
复制代码

那么当判断1——12月份时,那不if elif elif........的一大堆了,有一种case....esac模式

case....esac模式

复制代码
case $变量名 in
”第1个变量内容“)
         程序段1
         ;;
”第2个变量内容“)
         程序段2
         ;;
 .
 .
 .
*)
         程序段n
         ;; 
esac
复制代码

那就列出月份是属于哪个季度

复制代码
#!bin/bash
read -p "Input the month(1-12):" mon
case $mon in
1)
    echo "the first quarter."
    ;;
2)
    echo "the first quarter."
    ;;
3)
    echo "the second quarter."
    ;;
4)
    echo "the second quarter."
    ;;
5)
    echo "the second quarter."
    ;;
6)
    echo "the third quarter."
    ;;
7)
    echo "the third quarter."
    ;;
8)
    echo "the third quarter."
    ;;
9)
    echo "the fourth quarter."
    ;;
10)
    echo "the fourth quarter."
    ;;
11)
    echo "the fourth quarter."
    ;;
12)
    echo "the fourth quarter."
    ;;
*)
    echo "Input Wrong!"
    ;;
esac
复制代码

 



本文转自jihite博客园博客,原文链接:http://www.cnblogs.com/kaituorensheng/archive/2013/03/25/2981595.html,如需转载请自行联系原作者

 

相关文章
|
Unix Shell Linux
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
本文提供了几个Linux shell脚本编程问题的解决方案,包括转置文件内容、统计词频、验证有效电话号码和提取文件的第十行,每个问题都给出了至少一种实现方法。
259 6
LeetCode刷题 Shell编程四则 | 194. 转置文件 192. 统计词频 193. 有效电话号码 195. 第十行
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
Shell Linux 开发工具
|
监控 Unix Shell
shell脚本编程学习
【10月更文挑战第1天】shell脚本编程
263 12
|
Shell
Shell编程(下)
Shell编程(下)
199 1
|
Shell Linux Windows
Shell编程(上)
Shell编程(上)
154 1
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
存储 Unix Shell
shell脚本编程基础
【9月更文挑战第4天】
182 12
|
Shell Linux
Shell 编程 编写hello word
Shell 编写hello word
160 5