By WangGaoPeng
2017.12.5日,还没有适应这两天给自己安排的小习惯,有点拖延症,希望能慢慢适应。
继续昨天没写完的Shell编程基础
Shell编程之if else
通过if else来完成比大小,判断num1是否大于num2
建立num.sh脚本文件,继续标准开头如下:
#!/bin/bash
#if else test \\简述作用
# by wgp 2017-12-5 \\作者,创作时间
首先定义两个数,来比对大小
NUM1=10
NUM2=100
if else的写法
运行num.sh脚本结果if (($NUM1>$NUM2));then
echo "this $NUM1 > $NUM2 !
else
echo "this $NUM1< $NUM2 !"
fi
仔细看,如果num1>num2会输出 if中的echo,如果判断num1<num2则会输出else中的echo
运行脚本:/bin/bash num.sh,结果如下,因为num1<num2所以会输出else中的echo
综合实验之判断成绩区间
根据学生成绩,每个区间打印不同的提示语
0-60 no pass
>60 pass
>75 good!
>85 very good
此处引用一下脚本之家的if else的逻辑表达式介绍
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
定义好区间以及每个区间的echo后,还需要考虑需要输入成绩部分。这里我们就用到$1了,前面提到的 $1参数。详情如下:
建立一个scores.sh脚本文件
scores=$1 \\定义变量
if [ -z $scores ];then
echo "Usage: {$0 60|80. }" \\定义$1如果为空,则echo输出,并且不进行下面操作
fi
if [[ $scores -ge 85 ]]; then
echo "very good!";
elif [[ $scores -ge 75 ]]; then
echo "good !";
elif [[ $scores -ge 60 ]]; then
echo "pass!";
else
echo "no pass!"
fi
以上的-ge参数可以根据我引用脚本之家的参数详解根据不同需要可以更改。
保存退出,/bin/bash scores.sh ,结果如下:
不带参数的scores.sh这里我们没有输入分数,所以提示让我们输入变量,比如60或者80
我们这次分别在/bin/bash scores.sh后面输入四个不同的分数来看看,如下:
带参数的scores.sh根据我们不同的分数,在每个区间都输出了相对应的echo,可以根据这个图回头再看看脚本就理解了。
今天就到这里,明天我们讲 if else的-d和-f参数,来判断文件或者文件夹是否存在。
ok,我们下期再贱
网友评论