Loading... <p> </p> <p>一、逻辑运算</p> <p> 布尔运算:真、假</p> <p> 与运算:</p> <p> 真 && 真 = 真</p> <p> 真 && 假 = 假</p> <p> 假 && 真 = 假</p> <p> 假 && 假 = 假</p> <p> 或运算:</p> <p> 真 || 真 = 真</p> <p> 真 || 假 = 真</p> <p> 假 || 真 = 真</p> <p> 假 || 假 = 假</p> <p> 非运算:</p> <p> 非真 = 假</p> <p> 非假 = 真</p> <p>二、状态返回值</p> <p> echo $?</p> <p> 成功:则返回0</p> <p> 失败:则返回1-255,失败不等于假</p> <p> 自定义:exit [n]</p> <p>三、算数运算</p> <p> 1、定义整形变量</p> <p> let VAR_NAME=INTEGER_VALUE</p> <p> declare -i VAR_NAME=INTEGER_VALUE</p> <p> 如果没有定义整形变量,字符型数字会被bash执行隐士类型转换参与算数运算</p> <p> 2、运算方式</p> <p> let VAR_NAME=ARITHMATIC_EXPRESSION</p> <p> VAR_NAME=$[ ARITHMATIC_EXPRESSION ]</p> <p> VAR_NAME=$(( EXPRESSION ))</p> <p> VAR_NAME=$( expr EXPRESSION )</p> <p> 3、算数运算符</p> <p> +、-、*、/、%、**、+=、-+、、*=、/=、%=、++</p> <p>四、比较运算测试</p> <p> 1、整形比较测试</p> <p> -gt:大于</p> <p> -lt:小于</p> <p> -ge:大于等于</p> <p> -le:小于等于</p> <p> -eq:等于</p> <p> -ne:不等于</p> <p> 2、字符串比较测试,根据ASCLL码大小比较字符串</p> <p> 双目运算符:</p> <p> >: </p> <p> <:</p> <p> >=:</p> <p> <=:</p> <p> ==:</p> <p> !=:</p> <p> =~:模式匹配,[[ "$VAR" =~ PATTERN ]]</p> <p> 单目运算符:</p> <p> -n String:是否不空,不空则为真,空则为假</p> <p> -z String:是否为空,空则为真,不空则为假</p> <p> 3、文件比较测试</p> <p> -a/-e FILE:存在则为真,否则则为假</p> <p> -f FILE:存在且为普通文件则为真,否则为假</p> <p> -d FILE:存在且为目录文件则为真,否则为假</p> <p> -s FILE:存在且为非空文件则为真,否则为假</p> <p> -r FILE:存在且为可读文件则为真,否则为假</p> <p> -w FILE:存在且为可写文件则为真,否则为假</p> <p> -x FILE:存在且为可执行文件则为真,否则为假</p> <p> -L/-h:存在且为符号链接文件则为真,否则为假</p> <p> -b FILE:存在且为块设备则为真,否则为假</p> <p> -c FILE:存在且为字符设备则为真,否则为假</p> <p> -S FILE:存在且为Socket套接字文件则为真,否则为假</p> <p> FILE1 -nt FILE2:FILE1的mtime新于FILE2则为真,否则为假</p> <p> FILE1 -ot FILE2:FILE1的mtime旧于FILE2则为真,否则为假</p> <p>五、测试方式</p> <p> 1、test EXPR</p> <p> 2、[ EXPR ]</p> <p> 3、[[ EXPR ]]</p> <p> 测试比较通常只在同一种类型间进行</p> <p>六、for循环语句</p> <p> 说明:遍历有限的元素列表,语句在同一行用;分隔</p> <p> 语法:</p> <p> for VAR_NAME in LIST </p> <p> do</p> <p> 循环体</p> <p> done</p> <p> LIST:列表,中间包括一个或多个元素</p> <p> 退出条件:遍历结束</p> <p>七、if条件语句</p> <p><br style="background-color: inherit" /></p> <p> 单分支if语句:</p> <p><br style="background-color: inherit" /></p> <p> if 测试条件;then</p> <p> 选择分支</p> <p><span style="line-height: 1.5;background-color: inherit"> fi</span></p> <p><br style="background-color: inherit" /></p> <p> 双分支if语句:</p> <p><br style="background-color: inherit" /></p> <p> if 测试条件;then</p> <p> 选择分支1</p> <p> else</p> <p> 选择分支2</p> <p> fi</p> <p> </p> <p> 多分支if语句:</p> <p><br style="background-color: inherit" /></p> <p> if 测试条件1;then</p> <p> 选择分支1</p> <p> elif 测试条件2;then</p> <p> 选择分支2</p> <p> elif 测试条件2;then</p> <p> 选择分支3</p> <p> …</p> <p> elif 测试条件n;then</p> <p> 选择分支n</p> <p> else</p> <p> 选择分支{n+1}</p> <p> fi</p> <p> </p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信