linuxC高级_day4
【1】 结构性语句
1. if..then..fi
1)基本结构
if 表达式
then
命令表
fi
2)分层结构
if 表达式
then
命令表1
else
命令表2
fi
3)嵌套结构
if 表达式
then
命令表
else
if 表达式
then
命令表
fi
fi
4) if [ 表达式1 ] -- 中括号两边都要有空格
then
命令表1
elif [ 表达式2 ]
then
命令表2
elif [ 表达式3 ]
then
命令表3
fi
*补充 :
逻辑或 ||
[ 表达式1 ] || [ 表达式2 ]
[ 表达式1 -o 表达式2 ]
逻辑与&&
[ 表达式1 ] && [ 表达式2 ]
[ 表达式1 -a 表达式2 ]
逻辑非 !
[!表达式 ]
【练习】 从命令行输入一个学生的成绩,看学生的成绩属于哪个等级
从终端输入一个目录判断是什么类型
-d name 测试这个name是不是一个目录
-f name 测试name是不是普通文件
-L name 测试name是不是链接文件
-S name 测试name是不是一个套接字文件
-e name 测试文件是否存在
-p name 测试是不是管道文件
-b name 测试是不是块设备文件
-z name 测试目录是不是存在
2. case...esac
case 字符串变量 in
模式1)
命令表1
;;
模式2)
命令表2
;;
模式3|模式4)
命令表3
;;
模式n)
命令表n
;;
esac
注意: case语句只能检测字符串的变量
命令表后是以两个;作为结束的
模式n一般是表示其他所有模式的意思 *)
一个case分支里可以匹配多个模式,用|隔开
【练习】 用case语句写学生成绩分类
90 100: A
60 70 80 : B
其他:不及格
先用if写一个判断是不是小于0或者大于100
3. for..do..done
for 变量名 in 单词表
do
命令表
done
1) for i in 1 2 3 4
do
done
2) for i in {1..10}
do
done
3) for ((i=0;i<10;i++))
do
done
4) for i 表示i从命令行取值 可以省略单词表
do
done
【练习】 统计某个目录下面文件的个数
4. while..do..done
while 命令或者表达式
do
命令表
done
【练习】 while写1-10求和
5. until..do..done
until 命令或者表达式
do
命令表
done
6. break continue
break: 跳出本层循环
break n : 跳出n层循环
continue: 结束本次循环继续下一次循环
continue n: 结束n次进入到n+1次