if

  • 单格式与嵌套
  1. if 条件表达式;then #当条件为真时执行以下语句
  2. 命令列表
  3. else #为假时执行以下语句
  4. 命令列表
  5. fi
  6.  
  7. if 语句也可以嵌套使用
  8. if 条件表达式1;then
  9. if 条件表达式2;then
  10. 命令列表
  11. else
  12. if 条件表达式3;then
  13. 命令列表
  14. else
  15. 命令列表
  16. fi
  17. fi
  18. else
  19. 命令列表
  20. fi
  • 多分支格式
  1. if test -f "$1" ;then
  2. lpr $
  3. elif test -d "$1";then #elif 同else if
  4. (cd $;lpr $)
  5. else
  6. echo "$1不是文件或目录"
  7. fi

case

  1. case $newval in
  2. ) #这里是可能值1
  3. echo
  4. ;; #表示第一个分支结束
  5. ) #这里是可能值
  6. echo
  7. ;; #第二个分支结束
  8. *) #表示其他可能值,必须在最后,否则他后面的语句无法执行
  9. echo unkown
  10. esac #case 语句结束

while /until

  1. while 表达式
  2. do
  3. 命令列表
  4. done
  5. Sum=
  6. i=
  7. while true #true是系统的关键词 表示真
  8. do
  9. i=`expr $i + `
  10. Sum=`expr $Sum + $i`
  11. if [ $i = "" ]; then
  12. break;
  13. fi
  14. done
  15. echo $i $Sum
  16. 最后这个程序显示的是

下面将这个程序再改动一下

  1. Sum=
  2. i=
  3. while [ $i != "" ]
  4. do
  5. i=`expr $i + `
  6. Sum=`expr $Sum + $i`
  7. done
  8. echo $i $Sum
  9. 改动后的程序运算结果和上面是一样 但程序比上面的要简练
  10. 在这个循环中还可以以until做为测试条件 它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.
  11. Sum=
  12. i=
  13. until [ $i = "" ]
  14. do
  15. i=`expr $i + `
  16. Sum=`expr $Sum + $i`
  17. done
  18. echo $i $Sum
  19. i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100
  20. 时循环,也就是测试条件为真时循环.  

for

  • 枚举用法
  1. for 变量 in 名字列表
  2. do
  3. 命令列表
  4. done
  5. for n in {..}
  6. do
  7. echo $n
  8. done
  9.  
  10. for letter in a b c d e;
  11. do
  12. echo $letter
  13. done
  •   文件用法
  1. for file in *
  2. do
  3. echo $file
  4. done
  5. for File in a1 a2 a3 a4 a5
  6. do
  7. diff aa/$File bb/$File
  8. done
  •    累加格式
  1. for (( i=;$i<;i++ ))
  2. do
  3. echo $i
  4. done
  5.  
  6. for(( i=;$i<;i=$[`expr $i + `] ))
  7. do
  8. echo $i
  9. done

其他循环控制语句

break 命令不执行当前循环体内break下面的语句从当前循环退出.  
continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.
 

判断文件的属性

  1. 格式:-操作符 filename
  2.  
  3. -e 文件存在返回1 否则返回0
  4. -r 文件可读返回1,否则返回0
  5. -w 文件可写返回1,否则返回0
  6. -x 文件可执行返回1,否则返回0
  7. -o 文件属于用户本人返回1, 否则返回0
  8. -z 文件长度为0返回1, 否则返回0.
  9. -f 文件为普通文件返回1, 否则返回0
  10. -d 文件为目录文件时返回1, 否则返回0

测试字符串

  1. 字符串1 = 字符串2  当两个字串相等时为真
  2. 字符串1 != 字符串2 当两个字串不等时为真
  3. -n 字符串      当字符串的长度大于0时为真
  4. -z 字符串       当字符串的长度为0时为真
  5. 字符串       当串字符串为非空时为真

测试两个整数关系

  1. 数字1 -eq 数字2     两数相等为真
  2. 数字1 -ne 数字2     两数不等为真
  3. 数字1 -gt 数字2     数字1大于数字2为真
  4. 数字1 -ge 数字2     数字1大于等于数字2为真
  5. 数字1 -lt 数字2     数字1小于数字2为真
  6. 数字1 -le 数字2     数字1小于等于数字2为真

逻辑测试

  1. -a        
  2. -o        或
  3. !        非

shell编程中的控制判断语句的更多相关文章

  1. shell编程中如何执行oracle语句

    shell编程中如果向oracle中插入数据之类的,需要先把执行语句放到文件中,然后再@这个文件执行 有如下俩种方式供参考: SQL=`sqlplus user/pwd@orains << ...

  2. shell编程基础(3)条件判断语句

    1,带参数的shellscript #this is program build 5.11 to test shell script ############ cxz ####### 5.11 ### ...

  3. Shell编程中的条件判断(条件测试)

    Shell中的条件判断(测试)类型: 1) 整数测试 2) 字符测试 3) 文件测试 条件测试的表达式:        (注: expression 与 [] 之间空格不能省略) [ expressi ...

  4. shell编程中的if语句

    if语句在任何编程中都是必不可少.至关重要的分支语句,shell也是如此,只不过各种编程中的方式和格式有点不太一样 shell编程中的if语句基本格式如下: if [ X$1 = XA ];then ...

  5. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  6. shell编程中的 三种结构: 条件if/选择结构case/循环for/while/until等结构 和 函数的用法

    shell 函数的使用 (md中, 列表本身是有格式的, 他要产生缩进, 其次,列表项和列表项之间, 可以留有一个空行, 是合法的, 允许的) shell函数,就是 就相当于一个命令来看待和处理的, ...

  7. shell编程中的单/双 小括号, 中括号, 大括号

    linux shell中的变量类型?分字符串或者数字或者bool类型吗? 参考: http://www.cnblogs.com/nufangrensheng/p/3477281.html 不分! sh ...

  8. Shell编程中while与for的区别及用法详解【转】

    在shell编程中经常用到循环,常用的循环有for和while循环两种.while循环默认以行读取文件,而for循环以空格读取文件切分文件,本篇就结合现网的一些使用示例说说二者的用法和区别. 一.常用 ...

  9. [ SHELL编程 ] shell编程中数值计算方法实例

    SHELL编程中经常会涉及到数值计算,有时候对于这些计算命令使用场景容易忘记或者混淆,这里针对常用的命令做个总结.主要包括let.bc.expr.(())等. 1.let 使用格式:let 表达式,表 ...

随机推荐

  1. java远程工具类

    package com.zdz.httpclient; import java.io.BufferedReader; import java.io.IOException; import java.i ...

  2. whiledo循环输出数组中的分数

    var scores = [24, 32, 17]; var arrayLength = scores.length; var i =0; while(i < arrayLength){ var ...

  3. 20165203 《网络对抗技术》week1 Kali的安装与配置

    20165203 <网络对抗技术>week1 Kali的安装与配置 本人感觉Kali可以做很多有意思的事情,下面是本人的Kali的安装过程. 安装过程 光盘映像文件的下载 登录官网,选择下 ...

  4. Visual Studio快速调出异常设置

    使用快捷键:

  5. Linux salt

    引用自:https://blog.csdn.net/langsim/article/details/43939295 Saltstack介绍 Saltstack是一个新的基础设施管理工具.目前处于快速 ...

  6. MySQL中format()函数

    format()函数 format()函数:将数据内容格式化的,可以将数据格式化为整数或者带几位小数的浮点数(四舍五入). SELECT FORMAT();//取整 SELECT FORMAT();/ ...

  7. 练习题|python常用模块

    re模块练习 1.验证手机号是否合法 import re phone_pat = re.compile('^(13\d|14[5|7]\d|15\d|166|17[3|6|7]|18\d)\d{8}$ ...

  8. POJ 3660 Cow Contest. (传递闭包)【Floyd】

    <题目链接> 题目大意: 有n头牛, 给你m对关系(a, b)表示牛a能打败牛b, 求在给出的这些关系下, 能确定多少牛的排名. 解题分析: 首先,做这道题要明确,什么叫确定牛的排名.假设 ...

  9. python有序字典OrderedDict()

    转python创建有序字典OrderedDict # -*- coding:utf-8 -*- """ python有序字典 需导入模块collections " ...

  10. 进程队列补充-创建进程队列的另一个类JoinableQueue

    JoinableQueue同样通过multiprocessing使用. 创建队列的另外一个类: JoinableQueue([maxsize]):这就像是一个Queue对象,但队列允许项目的使用者通知 ...