一、条件测试操作
1、test命令
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1: test 条件表达式
格式2: [ 条件表达式 ]
2、文件测试
[ 操作符 文件或者目录 ]
echo $? 查看是0还是其他数
2.1、常用的测试操作符
命令 | 解释 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取 (Read) |
-w | 测试当前用户是否有权限写入 (Write) |
-x | 测试当前用户是否有权限执行 (eXcute) |
3、整数值比较
[ 整数1 操作符 整数2 ]
3.1、常用的测试操作符(重点)
输入字母命令的话只能对整数,不能对操作符
命令 | 解释 | 操作符 |
---|---|---|
-eq | 等于(Equal) | == |
-ne | 不等于(Not Equal) | != |
-gt | 大于(Greater Than). | > |
-lt | 小于 (Lesser Than). | < |
-le | 小于或等于(Lesser or Equal) | <= |
-ge | 大于或等于(Greater or Equal) | >= |
4、逻辑测试
格式1: [ 表达式1 ] 操作符 [ 表达式2 ]
格式2: 命令1 操作符 命令2
4.1、常用的测试操作符号
-a或&&:逻辑与,”而且“的意思
-o或||:逻辑或,”或者“的意思
!:逻辑否
-z :检查字符串是否为空
-n:检查是否有字符串存在
且 :[ 表达式A ] && [ 表达式B ]
[[ 表达式A && 表达式B ]]
[ 表达式A -a 表达式B ]
或 :[ 表达式A ] || [ 表达式B ]
[ 表达式A -0 表达式B ]
[[ 表达式A || 表达式B ]]
三元运算符:
表达式 && 命令A || 命令B
二、if语句的结构
1、单分支结构
if 条件测试操作 if 已用空间>80%
then 命令序列 > then 报警
fi fi
举例:
判断/opt目录下,有没有这个ky123.sh这个文件,如果没有创建,自动生成
2、双分支结构
if 条件测试操作 if 80端口是否在监听
then 命令序列1 then 网站服务已在运行
>
else 启动httpd服务
else 命令序列2 fi
fi
3.多分支结构
使用shell脚本设置分数排行
举例:
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
补充
if [ $sec -eq $sec ]
这个命令可以实现只能取整数,不能取小数
三、case语句结构
1、caes多分支结构
通过多分枝的结构来统计分数
扩展
请用最熟悉的编程语言,解出如下题
猴子摘下了n个香蕉,当天吃掉一半多一个,第二天也是吃掉剩下香蕉一半多一个,到了第十天,香蕉只剩下了1个。
问: 猴子第一天摘了多少香蕉?文章来源:https://www.toymoban.com/news/detail-426454.html
#!/bin/bash
n=1
for(i=9;i>0;i--)
do
n=$[(n+1)*2]
done
echo $n
斐波拉切数文章来源地址https://www.toymoban.com/news/detail-426454.html
1 1 2 3 5 8 13 21 34 55 89 .....
求前十个数的总和
a=1
b=1
c=0
for i in{1..10}
do
echo $a
c=$[c+a]
sum=$[a+b]
a=$b
b=$sum
done
到了这里,关于【Shell编程之条件语句】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!