格式: if(表达式) 语句 1 else 语句 2 fi if常见的判断逻辑运算符
命令功能-f判断文件是否存在,例如:if [-f filename]-d判断目录是否存在,例如:if [-d dir]-eq等于,应用于整型比较,即 equal-ne不等于,应用于整型比较,即 not equal-lt小于,应用于整型比较,即letter-gt大于,应用于整型比较,即greater-le小于或等于,应用于整型比较-ge大于或等于,应用于整型比较-a双方都成立(and),逻辑表达式-o单方成立(or),逻辑表达式-z空字符串丨丨单方成立&&双方都成立if判断括号区别
样式功能()用于多个命令组、命令替换、初始化数组(())整数扩展、运算符、重定义变量值,算数运算比较[ ]bash内部命令,“[”与test是等同的,正则字符范围、引用数组元素编号,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用-a,-o[ [ ] ]bash程序语言关键字,不是一个命令,[ [ ] ]结构比[ ]结构更加通用,不支持“+”、“-”、“*”、“/”数学运算符,逻辑测试使用&&、 丨丨{ }主要用于命令集合或者范围,例如:mkdir -p /data/201{7,8}/格式: for var in (表达式) do 语句1 done 案例:for循环求1~100的总和
#!/bin/bash j=0 for ((i=1;i<101;i++)) do j=`expr $i + $j` done echo $j格式: while (表达式) do 语句1 done 案例: while循环求1~100的总和
#!/bin/bash j=0 i=1 while ((i<101)) do j=`expr $i + $j` ((i++)) done echo $j格式: case $1 in Pattern1) 语句1 ;; Pattern2) 语句2 ;; Pattern3) 语句3 ;; esac 案例:自动修改IP脚本菜单
#!/bin/bash case $i in modify_ip) change_ip ;; modify_hosts) change_hosts ;; exit) exit ;; *) echo -e "1) modify_ip\n2) modify_ip\n3) exit" exac