shell的流程控制

一、五大运算

二、if语句

 

一、五大运算

1.数学比较运算---比较的是整型!!!!!!!!!!

输入命令: man test 

查看以下比较运算符的使用

【note】test 命令的作用:检测文件类型或者是比较运算

    test - check file types and compare values

 

  • -eq  等于
  • -gt  大于
  • -ge 大于等于
  • -lt  小于
  • -le  小于等于
  • -ne 不等于

test 只会运算,不会告诉结果;所以需要用到组合命令echo

j:~/myself_study/shell_j$ test 9 -gt 7; echo $?
0
j:~/myself_study/shell_j$ test 8 -ge 8;echo $?
0

 

 

 

如果要比较float, 该怎么比较?----放大10的整数倍,变成整型的比较运算

MBC02FV3MZMD6P:J_shell j$ echo "2.5*10" | bc
25.0
MBC02FV3MZMD6P:J_shell j$ echo "2.5*10"|bc|cut -d '.' -f1
25
MBC02FV3MZMD6P:J_shell j$ echo "2.5*10"|bc|cut -d '.' -f2
0

举例


#!/bin/bash


NUM1=`echo "1.5*10"|bc|cut -d "." -f1`
NUM2=20
test $NUM1 -ge $NUM2;echo $?

执行:-x 表示debug,可以看到每一步的计算步骤

 

 

 

 

2.文件的比较跟检查

  • -d 检查文件是否存在且为目录
  • -e 检查文件是否存在(可以是目录也可以是文件
  • -f 检查文件是否存在且为文件
  • -r 检查文件是否存在且可读
  • -s 检查文件是否存在且不为空
  • -w 检查文件是否存在且可写
  • -x 检查文件是否存在且可执行
  • file1 -nt file2 检查文件file1是否比file2新  (nt =new than)
  • ile1 -ot file2 检查文件file1是否比file2旧  (nt =old than)

 

 

 

 举例 -d:/tmp/abc目录不存在,创建后再test,存在

 

 

3.字符串的比较运算

  • == 等于 
  • != 不等于
  • -n 检查字符串的长度是否大于0(字符串不为空)
  • -z 检查字符串的长度是否为0(字符串为空)

 

 

 

 

4.赋值运算 =

5.逻辑运算

  • && 与
  • ||  或
  • ! 非