Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏

目录

简单比较

与或非

if与for

if语句

for循环

增强for循环

 各种例题:

打印水仙花数:

 打印20以内的素数

酒桌游戏:敲七


简单比较

在shell当中使用1代表true,0代表false

shell中使用字母表示各种判断

-gt:检测左边的数是否大于右边的数,若大于则返回true

对于大小的比较直接使用$[表达式]即可实现大小的比较,这里的格式若使用-gt则格式会错误

举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第1张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第2张图片

与或非

与:&;或:|;非:!

在程序中不允许两个条件一起书写,想要去写只能去一个个去写,中间使用与或非连接两个条件。

与字符举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第3张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第4张图片

 只有当前后都为1时结果才是1

或字符举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第5张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第6张图片

 只有前后两边都是0的时候结果才是0

非字符举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第7张图片

 非字符实现的是反转功能,且反转的是紧跟后面的字符,若想反转一个整体,需要将后面反转的部分加上小括号

if与for

脚本的执行流程默认情况下是从上向下依次执行。

if语句

if语句使该执行流程变为多分支流程。

由于if的判断条件本身就是做一个判断,所以在判断条件中不需要加入$符计算表达式的结果,而是直接对表达式进行一个判断。

格式1:

if 判断条件

then

        成立执行的代码

fi

举例:这里给出两种情况,一种大于,一种小于

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第8张图片

 通过结果发现:对于判断条件不成立的情况仍然输出了true

这是由于:使用[],需要每一块的内容都以空格分割,且默认不能识别符号

解决方法:将大于号加上转义字符即可

但这种方式写出的if语句中的判断条件的值不可以大于两位数。且不可以使用连续的符号例如>=,

所以这里若涉及到>=的话还是需要使用字母-ge来进行实现>=。

[]适用于以字母来表示判断条件,使用符号的局限性比较大

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第9张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第10张图片

格式2:

if 判断条件

then 

        成立执行的代码

else

        不成立执行的代码

fi

 举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第11张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第12张图片

 该结果说明:

[[]]方式可以识别符号,每一块之间需要使用空格分割,但仍然不可以使用连续符号,且值也不能大于两位数,同时可以使用字母来代替符号使用。

总结:

只要使用中括号判断条件,直接使用字母进行判断(不需要考虑注意事项),如果使用符号,注意事项比较多。

剩下判断条件还有两种方式:()和(())

这里直接说明(()),因为()已经被弃用

 举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第13张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第14张图片

 结果说明:

(())可以直接使用符号,不需要考虑任何问题,也可以直接引用变量,但不可以使用字母。

这里引出:[]不可以直接引用变量,但[[]]可以直接引用变量。

举例:男女跑步成绩,使用到if的嵌套

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第15张图片

 输出:

Shell中若想使用中文比较,需要使用双中括号的格式去判断,且使用符号==即可实现中文的比较

 格式3:

if 判断条件

then

        为true的代码

elif 判断条件

then

        为true的代码

。。。

else(这个else可加可不加)

        为false的代码

fi

举例:

考试成绩:0到59,加班学习;60到99,正常;100,休息三天

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第16张图片

 输出结果:

for循环

 for循环格式:

for((定义变量;判断条件;控制语句))

do

        循环的代码体

done

 简单举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第17张图片Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第18张图片

 循环嵌套:输出i小时j分钟

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第19张图片

输出:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第20张图片

 举例:

使用for循环打印九九乘法表

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第21张图片

 输出:这其中引出不换行输出为:echo -n 

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第22张图片

增强for循环

格式:

for 变量 in 结果集

do

        循环的代码体

done

结果集的格式:

格式1:{开始..结束}

格式2:`seq 开始 结束`

两种格式的区别:

格式1在使用变量时不会产生结果集,只会将大括号内的内容包括大括号当作一个整体成为一个字符串直接输出

而格式2可以使用变量,不过需要引用变量,不可直接使用,可以产生结果集。

举例:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第23张图片

输出: 

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第24张图片

举例:输出奇数和偶数的和

 Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第25张图片

这里若是不使用$符计算结果,可以使用字母let来进行计算结果

 输出:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第26张图片

 各种例题:

打印水仙花数:

水仙花数:是指一个三位数的各个位上的三次方的和等于这个三位数,1000以内有四个水仙花数

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第27张图片

 输出:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第28张图片

 打印20以内的素数

 素数:除了1和本身之外没有其他的因数

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第29张图片

输出:

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第30张图片

酒桌游戏:敲七

 敲七:指的是依次按顺序说数,凡是遇到个位数或者十位数为7或者是7的倍数的数,全部改为敲桌子

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第31张图片

 输出:这里给出20以内的敲七数

Day31 Linux Shell中的关系运算符以及使用Shell打印水仙花数和九九乘法表,敲七游戏_第32张图片

你可能感兴趣的:(笔记,linux,运维,服务器)