LinuxC高级_day4
【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
eg: read num
#if test $num -eq 5
if [ $num -eq 5 ]
then
echo "$num=5"
else
echo "$num not 5"
fi
[练习]
1. 学生成绩分级
1)如果成绩大于100或者小于0就退出
exit
2)90-100 - A
80-90 - B
70-80 - C
60-70 - D
其他 - E
2. 判断文件类型
3. 逻辑运算符
1)&& 逻辑与
[ 表达式1 ] && [ 表达式2 ]
[ 表达式1 -a 表达式2 ]
2) || 逻辑或
[ 表达式1 ] || [ 表达式2 ]
[ 表达式1 -o 表达式2 ]
3) 逻辑非!
[ !表达式1 ]
case..esac
case 变量 in
模式1|模式3)
命令表1
;;
模式2)
命令表2
;;
模式n)
命令表n
;;
esac
[练习] 学生成绩分级
90 100 A
60 70 80 B
其他 不及格
for..do..done
for 变量 in 单词表
do
命令表
done
1) for i in 1 2 3 4 5 #i从单词表依次取值
do
done
2) for i in {1..10}
do
done
3) for i #从命令行取值
do
done
4) for ((i=0;i<100;i++)) do done
[练习] 统计目录下文件的个数
ls -l|grep “^-”|wc -l
while..do.done
格式
while 命令或者表达式
do
命令表
done
eg:打印1-5
n=1
while [ $n -le 5 ]
do
echo "n:$n"
((n++))
done
until..do..done
格式
until 命令表达式
do
done
n=1
until [ $n -gt 5 ]
do
echo "n:$n"
((n++))
done
- 循环控制
break
continue
break
结束本次循环
break n #break 2
能够跳出两层
continue
结束本次循环进入下一次循环
continue n
[练习] 1.用冒泡排序实现10个数字从小到大排序
读入数字的方式随意,可以使用read 或者命令变量 或者写死一个数组
read -a arr
arr=(12 17 523 99 100 66 34)
2. 判断用户是否存在
user_name=(www baidu com root linux baidu)
输入一个用户名baidu
3. 实时时钟
4. 十进制转二进制 /2 >>
int year=2020
month=7
day=30
hour=23
min=59
sec=55
for(;;)
{
sec++
if sec == 60
min++
sec=0
if min == 60
hour++
min=0
if hour == 24
day++
hour=0
if day 31
1 3 5 7 8 12 month++
if day 30
4 6 9 10 11 month++
if 闰年
28 month++
平年
29 month++
}