linux基础第七天笔记
SHELL脚本编程(二)
语句:
具有特殊功能的语句
输入语句:read
输出语句:echo
控制语句:tput
测试语句:test 表达式
测试表达式的正确与否
0为真
1为假
可以使用$?获取test语句的结果
test语句的三种方式:
按照数值测试:
-lt 小于
-gt 大于
-eq 等于
-le 小于等于
-ge 大于等于
-ne 不等于
测试文件:
-f “name” 测试name是否是普通文件
-d “name” 测试name是否是文件夹
“name1” -nt “name2” 测试name1是否比name2更新
“name1” -ot “name2” 测试name1是否比name2更久
-s “name” 测试name是否是一个文件,并且内容不为空
-w 测试文件是否存在并可写
-r 测试文件是否存在并可读
-x 测试文件是否存在并可执行
-l 测试文件是否为链接文件
测试字符串
= 测试字符串内容是否完全一致
!= 测试字符串内容是否不一致
-z str 测试字符串长度是否为0
-n str 测试字符串长度是否不为0
分支语句:
if语句
形式一:
if test语句
then
test语句为真的时候,执行的代码
fi
形式二:
if test语句
then
test语句为真的时候,执行的代码
else
test语句为假的时候,执行的代码
fi
形式三:
if test语句1
then
test1语句为真的时候,执行的代码
elif test语句2
then
test2语句为真的时候,执行的代码
else
都不符合的时候执行的代码
fi
expr 计算语句
num1=10
num2=20
num3=`expr $num1 + $num2`
echo $num3
` ` 运行 ` `中间的内容,并将结果返回
case语句
判断变量语句取值使用,大部分功能可以使用if实现
case var in
mode1)
codes
;;
mode2)
codes
;;
*)
;;
esac
练习题一:
1.检测~/下是否有backup目录。如果没有,则新建
2.检测~/backup目录下,是否有当月月份为名的目录。如果没有,则新建
3.以上两个条件如果都满足的情况下,则将~/study/下月份为名的文件夹下日期为名的文件夹压缩,并移动到~/backup/月份为名的文件夹下
例:
study目录的结构:
~/study/16-10/10-26
backup目录的结构
~/backup/16-10/10-26.tar.gz
练习题二:
利用所学知识,编写一个支持四则运算的计算器,最少完成加减法和除法,乘法操作选做。如出现问题,考虑方向为转义字符
shell脚本之循环
for循环
所谓循环,既重复去做某一件事情
第一种格式:
filenames="asdf ewt jklj xczv"
for filename in $filenames
do
echo $filename
done
filename会依次取filenames中的单词,直到取完所有单词为止
第二种形式:
for ((i=0 ; i<100 ; i++))
do
echo $i
done
每次循环i会增长1,直到不满足i < 100的条件为止
循环共进行100次