1.运算符
1.基本介绍:
学习如何在shell中进行各种运算操作。
2.基本语法:
2)expr m + n
注意expr运算符间要有空格
3)expr m - n
4) expr *,/,% 乘除取余数
应用实例:
案例1:计算(2+3)X4的值
方法1:
方法2:
方法3:expr
案例2:请求出命令行的两个参数【整数】的和
法2:
2.条件判断
判断语句
2.1基本语法
【 condition 】(注意condition前后要有空格)
#非空返回true,可使用$?验证(0为true,>1为false)
2.2应用实例
[ atguigu ] 返回true
[ ] 返回false
[ condition ] && echo OK || echo notok 条件满足,执行后面的语句
2.3常用判断条件
1)两个整数的比较
= 字符串的比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
2)按照文件权限进行判断
-r 有读的权限【 -r 文件】
-w 有写的权限 【 -w 文件 】
-x 有执行权限 【 -x 文件 】
3)按照文件类型进行判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并且是一个目录
2.4应用实例
案例1:“ok"是否等于"ok”
判断语句:
案例2:23是否大于等于
案例3:/home/shell/demo01.sh目录中的文件是否存在
判断语句:
3.流程控制语句
1.if判断
基本语法:
if [ 条件判断式 ];then
程序
fi
或者
if [ 条件 ]
then
程序
elif [ 条件 ]
then
程序
fi
注意事项:
(1)[ 条件判断式 ],中括号和条件判断式之间必须有空格
(2)推荐使用第二种方式
应用实例:
案例:请编写一个shell程序,如果输入的参数,大于等于60,则输出“及格了”,如果小于60,则输出“不及格”
2.case语句
基本语法:
case $变量名 in
"值1")
如果变量的值满足等于1条件,则执行程序1
;;
"值2")
如果变量的值满足等于2条件,则执行程序2
;;
*)
如果变量的值都不是以上的值,则执行此程序
;;
esac
应用实例:
案例1:当命令行参数是1时,输出“周一”,是2时,输出“周二”
,其他情况则输出“other”
3.for循环
基本语法1:
for 变量 in 值1 值2 值3...
do
程序
done
应用实例:
案例1:打印命令行输入的参数【会使用到$ * $ @】
打印结果:
基本语法2:
for (( 初始值;循环控制条件;变量变化 ))
do
程序
done
应用实例:
案例1:从1加到100的值输出显示
3.while循环
基本语法1
while [ 条件判断式 ]
do
程序
done
应用实例:
案例1:从命令行输入一个数n,统计从1+…+n的值是多少?
4.read 读取控制台输入
基本语法:
read (选项)(参数)
选项:
-p:指定读取值时的提示符
-t:指定读取值时等待的时间(秒),如果没有在指定的时间内输入,就不再等待了
参数
变量:指定读取值的变量名
应用实例:
案例1:读取在控制台输入的一个num值
案例2:读取控制台输入一个num值,在10秒内输入