一、分支控制语句

1、if .. fi条件

if condition; then

action

fi

2、if .. else .. fi条件

if condition;then

action;

else

action

fi

3、if .. else if ..else ..fi条件

if condition;then

action;

else if condition;then

action;

else

action;

fi

注意:if和slse语句可以进行嵌套,if条件判断可能因此变得很长,可以使用逻辑运算符使他变得简洁一点:

[ condition ] && action; #如果condition条件为真,则执行action;

[ condition ] || action; #如果condition条件为假,则执行action;

二、循环控制语句

1、for循环

for var in list;

do

action;

done

其中list可以是一个字符串、序列或数组等。

采用c语言方式的for循环语句:

for((i=0;i<10;i++))

{

action

}

for((i=0;i<10;i++));

do

action

done

2、while循环

while condition

do

action

done

3、until循环语法

until condition

do

action

done

二、逻辑运算符和逻辑表达式

1、常用逻辑运算符如下:

l &&(或者 -a):逻辑与

l ||(或者 -o):逻辑或

2、逻辑表达式

1)算术比较:条件一般被放在[]内,切记中括号前后需要留有空格。

常用的算术操作符:

l -eq:等于

l -ne:不等于

l -gt:大于

l -lt:小于

l -ge:大于等于

l -le:小于等于

2)文件系统运行符:条件比较一般被放在[]内,切记中括号前后需要留有空格。

l [ -f $file_var ]:给定变量包含正常的文件或文件名,返回真。

l [ -x $var ]:给定的文件包含可执行权限,返回真。

l [ -d $var ]: 给定的变量包含的是目录,返回真。

l [ -e $var ]: 给定的变量包含的文件存在,返回真。

l [ -c $var ]: 给定的变量包含一个字符设备路径,返回真。

l [ -b $var ]: 给定的变量是一个块设备文件路径,返回真。

l [ -w $var ]: 给定的文件包含可写权限,返回真。

l [ -r $var ]: 给定的文件包含可读权限,返回真。

l [ -L $var ]: 给定的文件包含一个符号链接,返回真。

3)字符串比较:条件比较一般被放在双[]内,切记中括号前后需要留有空格。

-z:字符串是空字符串,返回真。

-n:字符串是非空字符串,返回真。

4)test命令用来执行条件判断,test命令可以避免过多的[]。

例如:

if [ $var -eq 0];then

echo "true"

fi

可以写成:

if test $var -eq 0;then

echo "true"

fi

shell脚本之流程控制语句的更多相关文章

  1. shell脚本之流程控制

      shell脚本之流程控制 shell脚本之流程控制 条件语句 条件判断 循环语句for,while,until for循环 while循环 until循环 循环控制语句continue 循环控制语 ...

  2. shell脚本 3 流程控制

    shell流程控制 流程控制是改变程序运行顺序的指令.linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介 ...

  3. shell编程3 ---流程控制语句

    shell编程流程控制语句 一.if流程控制语句 1.单分支if条件判断语句 if [  条件判断式 ]:then     或者   if[ 条件判断式 ] 程序                   ...

  4. Shell脚本学习 - 流程控制和函数

    继续Shell的学习.上两篇是关于基本数据类型,基本语法以及运算符相关,这一篇是流程控制相关(if, for, while) 流程控制 if else 流程控制不可为空,如果else没有语句执行,就不 ...

  5. shell入门之流程控制语句 分类: 学习笔记 linux ubuntu 2015-07-10 16:38 89人阅读 评论(0) 收藏

    1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...

  6. shell入门之流程控制语句

    1.case 脚本: #!/bin/bash #a test about case case $1 in "lenve") echo "input lenve" ...

  7. Shell脚本之流程控制(if、for、while)

    if 判断 if语句的三种格式: (1)if (2)if else (3)if elif else 语法格式如下: #if 语法格式 if 条件 then 命令1... 命令2... fi #if e ...

  8. shell脚本(10)-流程控制while

    一.while循环介绍 while循环与for一样,一般不知道循环次数使用for,不知道循环的次数时推荐使用while 二.while语法 while [ condition ] #条件为真才会循环, ...

  9. shell脚本(11)-流程控制case

    一.case介绍 生产环境下,遇到要根据不同的状况执行不同的预案的情况,首先根据可能出现的情况写出对应预案,根据出现的情况来加载不同的预案 特点:根据给予的不同的代码块 二.case语法 case 变 ...

随机推荐

  1. Java常用测试工具

    第一部分:九款性能测试 Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runti ...

  2. tar加密

    # tar -czvf - file_name|openssl des3 -salt -k |dd of=file_name.des3 # ls flie_name file_name.des3 # ...

  3. vue环境配置脚手架环境搭建vue工程目录

    首先在初始化一个vue项目之前,我们需要下载node.js,并且安装! 下载地址: nodejs.cn/download 安装完成之后,windows+r 运行命令 cmd  输入node -v  检 ...

  4. 【30集iCore3_ADP出厂源代码(ARM部分)讲解视频】30-12底层驱动之液晶画点驱动

    视频简介:该视频介绍iCore3应用开发平台中液晶驱动的方法. 源视频包下载地址:链接:http://pan.baidu.com/s/1qXQoOQo 密码:gvgo 银杏科技优酷视频发布区:http ...

  5. CLOS架构是啥?

    有多少种技术能够在六十五年后依旧能够熠熠生辉,在IT的基础架构中扮演着重要角色?CLOS架构应该算是一项.Clos架构,诞生于1952年,是由由贝尔实验室一位叫Charles Clos的人提出的.CL ...

  6. Python终端自动补全

    在-目录下添加一个文件,名字为.pythonstartup.py #!/usr/bin/python # -*- coding: UTF-8 -*- import readline, rlcomple ...

  7. Retrofit/Okhttp API接口加固技术实践(上)

    作者:Tamic 地址:http://blog.csdn.net/sk719887916/article/details/61914609 写这篇文章,我纠结了非常久,究竟是属于app安全系列,还是属 ...

  8. [UFLDL] *Train and Optimize

    Deep learning:三十七(Deep learning中的优化方法) Deep learning:四十一(Dropout简单理解) Deep learning:四十三(用Hessian Fre ...

  9. [IR] What is XML

    Concept: http://www.w3school.com.cn/xml/xml_cdata.asp Semistructured: 和普通纯文本相比,半结构化数据具有一定的结构性.OEM(Ob ...

  10. [UI] 04 - Bootstrap: layout & navigation

    前言 一.资源 From: http://www.imooc.com/code/2881 Ref: http://www.runoob.com/try/bootstrap/layoutit/[拖拽布局 ...