7.逻辑结构

一、if 判断
if ... then ... fi

单层
如果 是真的 那么 ...
if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令。 fi# 结束这个判断语句结构

if ... then ... else....fi
多重、复杂条件判断式
如果 是真的 那么 ... 否则 ...
一颗红心,两手准备if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的指令工作内容; else 当条件判断式不成立时,可以进行的指令工作内容; fi

if ... elif ... elif ... else ... fi
多个条件判断 (if ... elif ... elif ... else) 分多种不同情况执行
if [ 条件判断式一 ]; then 当条件判断式一成立时,可以进行的指令工作内容; elif [ 条件判断式二 ]; then 当条件判断式二成立时,可以进行的指令工作内容; else 当条件判断式一与二均不成立时,可以进行的指令工作内容; fi

注意
elif 也是个判断式,因此出现 elif 后面都要接 then 来处理!但是 else 已经是最后的没有成立的结果了, 所以 else 后面并没有 then
二、利用case ...esca判断 基本语法
case$变量名称 in<==关键字为 case ,还有变量前有钱字号 "第一个变量内容")<==每个变量内容建议用双引号括起来,关键字则为小括号 ) 程序段 ; ; <==每个类别结尾使用两个连续的分号来处理! "第二个变量内容") 程序段 ; ; *)<==最后一个变量内容都会用 * 来代表所有其他值 不包含第一个变量内容与第二个变量内容的其他程序运行段 exit 1 ; ; esac<==反过来写,结束当前语句结构!

模式还可以是多个
#!/bin/bash cat << EOF m|M) show memory usages; d|D) show disk usages; q|Q) quit EOF read -p "Your choice" choice case $choice in m|M) free -m ; ; d|D) df -h ; ; q|Q) exit ; ; *) eco "Invalid input" ; ; esac

三、while...do...done(不确定的循环)
while [ condition ]==>中括号内的状态就是判断式 do==> do 是循环的开始! 代码段 代码段 done==> done 是循环的结束

四、 for do done (固定的循环)
for var in con1 con2 con3 ... do 程序段 done

var 是变量名
con1 con2 con3 是常量,就是具体的数据
也可以是一个已经被赋值的变量, 写法 [图片上传失败...(image-4ede60-1565009376150)]
{val2}
以上面的例子来说,这个 $var 的变量内容在循环工作时:
  1. 第一次循环时, $var 的内容为 con1 ;
  2. 第二次循环时, $var 的内容为 con2 ;
  3. 第三次循环时, $var 的内容为 con3 ;
  4. ....
数值运算
?~ n=1 ?~ let n++ ?~ echo $n 2 ?~ (( n++ )) ?~ echo $n 3 ?~ a=2 ?~ b=3 ?~ let f=a+b ?~ echo $n 3 ?~ echo $f 5 ?~ let f = a + b==> 错误 zsh: bad math expression: operand expected at `=' ?~ let "f = a + b" ?~ echo $f 5

for 循环中 变量的取值方式 a. 从一组字符串中取值
forvarinonetwothreefourfive do echo"****************************" echo'$varis '$var done

b. 从位置变量中取值
forvar do echo'-----------------------------' echo'$varis '$var done

c. 从累计变化的格式中取值
#!/bin/bash for((var=1; var<=10; var++)) do echo"------------------------" echo'$varis '$var done

【7.逻辑结构】d. 从命令结果中取值
#!/bin/bash forvarin$(catfile.txt) do echo" ------------------------" echo'$varis '$var done

六、break 和 continue

    推荐阅读