(十五)、shell脚本之简单控制流结构
一、基本的控制结构
1、控制流
常见的控制流就是if、then、else语句提供测试条件,测试条件可以基于各种条件。例如创建文件是否成功、是否有读写权限等,凡是执行的操作有失败的可能就可以用控制流,注意控制流的真为0,假为1。
- 单层if语句
if 条件;then if 条件
命令 或 then 命令
fi fi
if后跟条件,如果条件为真,执行then后面的命令,而then必须放在新行,fi结束控制流,可以理解为endif;我们更推荐第一种写法,这样可以更加增强代码的可读性,使得代码层次更加清晰,下面的例子简单阐述if...else语句。
举例:$ vim simple_if
#!/bin/sh
if [ "159" -lt "520" ]; then
echo "yes, 159 is less then 520"
fi
- 输入变量测试
通过测试设置为接受用户输入的变量可以测知用户是否输入信息,下面的例子中测试用户键入 enter后变量addr的值是否包含任何信息。
$ vim iftest2
#!/bin/sh
echo "Enter your addr:"
read ADDR
if [ "$ADDR" = "" ]; then
echo "you did not enter any information"
fi
- grep输出检查
对grep使用if语句找出grep是否成功返回信息
#!/bin/sh
if grep "liming" name.file > /tmp/null 2>&1; then
echo "liming is in the file"
else
echo "no liming is not in the file"
fi
2、if...else语句
if 条件;then
命令1
else
命令2
fi
检查运行脚本的用户,环境变量用作测试条件,即LOGNAME是否包含root值,这类语句是加在脚本开头作为安全性准则的普遍方法,
#!/bin/sh
if [ "$LOGNAME" != "root" ]; then
echo "you need to be root to run this script" > &2
exit 1
else
echo "yes indeed you are $LOGNAME proceed"
fi
最新文章
- list去从复
- 12.创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方 法初始化x和y。创建类主类A来测试它。
- C#中引用类型和值类型
- LInux软件的卸载和安装(转)
- URIEncoding和useBodyEncodingForURI详解
- HDU-4405 Aeroplane chess(概率DP求期望)
- iOS开发--基于AFNetWorking3.0的图片缓存分析
- 源自梦想 自定义ViewGroup的整理_1
- iOS开发那些事-iOS应用本地化-资源文件本地化
- 使用 Spring 2.5 基于注解驱动的 Spring MVC--转
- SPOJ--K-query (线段树离线) 离线操作解决一些问题
- (转)详解汇编系统调用过程(以printf为例)
- Quality Over Quantity: 更少一些,更好一些_第1页_福布斯中文网
- Jquery读取URL参数
- HUD-5124-lines
- 阿里云服务器连接邮箱SMTP服务器time out的解决
- 一本通 1223:An Easy Problem
- asp:DropDownList 使用
- Win10上启动UICrawler自动遍历时报 ";org.openqa.selenium.WebDriverException: An unknown server-side error occur red while processing the command. Original error: Could not sign with default certifi cate.";
- 每天一个linux命令:Linux 目录结构