linux中shell命令判断,linux之shell命令——条件判断(&& || test)-Go语言中文社区...

&& 和 ||

&&:用来执行条件成立后执行的命令

||:用来执行条件不成立后的执行命令

示例:

145de34689343b37ebcb1962f5c29b65.png

[root@localhost mnt]# id toto # 用户toto不存在无法查看

id: toto: no such user

[root@localhost mnt]# id toto &> /dev/null && echo yes || echo no # 判断用户是否存在

no # 由于用户不存在 条件不成立 所以输出no

[root@localhost mnt]# useradd toto # 创建用户之后 用户存在

[root@localhost mnt]# id toto &> /dev/null && echo yes || echo no # 条件成立 输出yes

yes

测试:检测是否能够ping通 主机 172.25.47.204 ,通则输出yes,不通则输出no

0db5ab68e5371e35cd35981953a38b0e.png

编写脚本,用以检测网络能否ping通

可以ping通输出此ip is up;ping不通输出 此ip is down

feed421d9f86fefc556b3e98ced85fdb.png

2998c4fa2618622cb071a2bae38ae8ee.png

test 命令

test命令通常做判断, test 命令和 [ ] 等同

[ "$A" = "$B" ] ##是否相等

[ "$A" != "$B" ] ##是否不相等

[ "$A" -eq "$B" ] ##是否相等

[ "$A" -ne "$B" ] ##是否不相等

[ "$A" -le "$B" ] ##是否小于等于

[ "$A" -lt "$B" ] ##是否小于

[ "$A" -ge "$B " ] ##是否大于等于

[ "$A" -gt "$B" ] ##是否大于

[ "$A" -ne "$B" -a "$A" -gt "$B" ] ##A 不等于 B 并且 A 大于B

[ "$A" -ne "$B" -o "$A" -gt "$B" ] ##A不等于B 或者 A大于B

[ -z "$A" ] ##是否为空

[ -n "$A" ] ##是否不为空

示例

1 test命令通常做判断, test 命令和 [ ] 等同

[root@localhost mnt]# a=1

[root@localhost mnt]# b=1

[root@localhost mnt]# test "$a" = "$b" && echo yes || echo no

yes

[root@localhost mnt]# [ "$a" = "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# test "$a" != "$b" && echo yes || echo no

no

[root@localhost mnt]# [ "$a" != "$b" ] && echo yes || echo no

no

2 -eq ##等于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" = "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# [ "$a" -eq "$b" ] && echo yes || echo no

yes

3 -ne ##不等于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" -ne "$b" ] && echo yes || echo no

no

[root@localhost mnt]# b=2

[root@localhost mnt]# [ "$a" -ne "$b" ] && echo yes || echo no

yes

4 -le ##小于等于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=2

[root@localhost mnt]# [ "$a" -le "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" -le "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# b=0

[root@localhost mnt]# [ "$a" -le "$b" ] && echo yes || echo no

no

5 -lt ##小于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=2

[root@localhost mnt]# [ "$a" -lt "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" -lt "$b" ] && echo yes || echo no

no

6 -ge ##大于等于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=2

[root@localhost mnt]# [ "$a" -ge "$b" ] && echo yes || echo no

no

[root@localhost mnt]# a=2

[root@localhost mnt]# [ "$a" -ge "$b" ] && echo yes || echo no

yes

[root@localhost mnt]# a=3

[root@localhost mnt]# [ "$a" -ge "$b" ] && echo yes || echo no

yes

7 -gt ##大于

[root@localhost mnt]# a=1

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" -gt "$b" ] && echo yes || echo no

no

[root@localhost mnt]# a=2

[root@localhost mnt]# [ "$a" -gt "$b" ] && echo yes || echo no

yes

8 -a ##同时满足

[root@localhost mnt]# a=1

[root@localhost mnt]# b=2

[root@localhost mnt]# c=3

[root@localhost mnt]# [ "$a" -lt "$b" -a "$b" -lt "$c" ] && echo yes || echo no

yes

[root@localhost mnt]# b=1

[root@localhost mnt]# [ "$a" -lt "$b" -a "$b" -lt "$c" ] && echo yes || echo no

no

9 -o ##两个条件满足其中一个就可以

[root@localhost mnt]# a=1

[root@localhost mnt]# b=2

[root@localhost mnt]# c=3

[root@localhost mnt]# [ "$a" -lt "$b" -o "$b" -gt "$c" ] && echo yes || echo no

yes

[root@localhost mnt]# [ "$a" -gt "$b" -o "$b" -gt "$c" ] && echo yes || echo no

no

10 -z ##是否为空

[root@localhost mnt]# c=''

[root@localhost mnt]# [ -z "$c" ] && echo yes || echo no

yes

[root@localhost mnt]# c=2

[root@localhost mnt]# [ -z "$c" ] && echo yes || echo no

no

11 -n ##不为空

[root@localhost mnt]# c=''

[root@localhost mnt]# [ -n "$c" ] && echo yes || echo no

no

[root@localhost mnt]# c=2

[root@localhost mnt]# [ -n "$c" ] && echo yes || echo no

yes

一个文件具体属于什么类型

[ -f “file” ] ##普通文件为真

[ -e “file” ] ##文件存在为真

[ -L “file” ] ##软链接为真

[ -S “file” ] ##套节字为真

[ -b “file” ] ##硬盘设备为真

[ -d “file” ] ##目录为真

[ -c “file” ] ##字符设备为真

[ “file1” -ef “file2” ] ##两文件为同一个文件为真

[ “file1” -nt"file2" ] ##文件1比文件2创建的晚为真

[ “file1” -ot “file2” ] ##文件1比文件2创建的早为真

示例:

[ “file1” -ef “file2” ] ##两文件为同一个文件为真

[root@localhost mnt]# touch file1

[root@localhost mnt]# ln file1 file2

[root@localhost mnt]# ls

file1 file2 ping.sh

[root@localhost mnt]# ls -i

8845808 file1 8845808 file2 8845813 ping.sh

[root@localhost mnt]# [ "file1" -ef "file2" ] && echo yes || echo no

yes

[root@localhost mnt]# [ "file1" -ef "ping.sh" ] && echo yes || echo no

no

[ “file1” -nt"file2" ] ##文件1比文件2创建的晚为真

[ “file1” -ot “file2” ] ##文件1比文件2创建的早为真

[root@localhost mnt]# ll

total 0

-rw-r--r--. 1 root root 0 May 20 06:25 file1

-rw-r--r--. 1 root root 0 May 20 06:27 file2

[root@localhost mnt]# [ "file1" -nt "file2" ] && echo yes || echo no

no

[root@localhost mnt]# [ "file1" -ot "file2" ] && echo yes || echo no

yes

测试1 编写脚本 判断输出文件类型

9ba5ca5cfadb2bac811458a0f7fc5f6c.png

33f6ca0e579e72b9993d626d0f8e7e27.png

测试2 编写脚本 创建或者删除用户

当创建用户时,用户存在则输出用户存在,不存在则建立用户

当删除用户时,用户存在则删除用户,用户不存在则输出用户不存在

aa22beabd5ad90bc56f7677decc05070.png

69cc33f129ca8d2fe7ae637276cba0d3.png

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
相关推荐
<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
<p> 需要学习Windows系统YOLOv4的同学请前往《Windows版YOLOv4目标检测实战:原理与源码解析》, </p> <p> 课程链接 https://edu.csdn.net/course/detail/29865 </p> <h3> <span style="color:#3598db;">【为什么要学习这门课】</span> </h3> <p> <span>Linux</span>创始人<span>Linus Torvalds</span>有一句名言:<span>Talk is cheap. Show me the code. </span><strong><span style="color:#ba372a;">冗谈不够,放码过来!</span></strong> </p> <p> <span> </span>代码阅读是从基础到提高的必由之路。尤其对深度学习,许多框架隐藏了神经网络底层的实现,只能在上层调包使用,对其内部原理很难认识清晰,不利于进一步优化和创新。 </p> <p> YOLOv4是最近推出的基于深度学习的端到端实时目标检测方法。 </p> <p> YOLOv4的实现darknet是使用C语言开发的轻型开源深度学习框架,依赖少,可移植性好,可以作为很好的代码阅读案例,让我们深入探究其实现原理。 </p> <h3> <span style="color:#3598db;">【课程内容与收获】</span> </h3> <p> 本课程将解析YOLOv4的实现原理和源码,具体内容包括: </p> <p> - YOLOv4目标检测原理<br /> - 神经网络及darknet的C语言实现,尤其是反向传播的梯度求解和误差计算<br /> - 代码阅读工具及方法<br /> - 深度学习计算的利器:BLAS和GEMM<br /> - GPU的CUDA编程方法及在darknet的应用<br /> - YOLOv4的程序流程 </p> <p> - YOLOv4各层及关键技术的源码解析 </p> <p> 本课程将提供注释后的darknet的源码程序文件。 </p> <h3> <strong><span style="color:#3598db;">【相关课程】</span></strong> </h3> <p> 除本课程《YOLOv4目标检测:原理与源码解析》外,本人推出了有关YOLOv4目标检测的系列课程,包括: </p> <p> 《YOLOv4目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4-tiny目标检测实战:训练自己的数据集》 </p> <p> 《YOLOv4目标检测实战:人脸口罩佩戴检测》<br /> 《YOLOv4目标检测实战:国交通标志识别》 </p> <p> 建议先学习一门YOLOv4实战课程,对YOLOv4的使用方法了解以后再学习本课程。 </p> <h3> <span style="color:#3598db;">【YOLOv4网络模型架构图】</span> </h3> <p> 下图由白勇老师绘制 </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202006291526195469.jpg" /> </p> <p>   </p> <p> <img alt="" src="https://img-bss.csdnimg.cn/202007011518185782.jpg" /> </p>
程序员的必经之路! 【限时优惠】 现在下单,还享四重好礼: 1、教学课件免费下载 2、课程案例代码免费下载 3、专属VIP学员群免费答疑 4、下单还送800元编程大礼包 【超实用课程内容】  根据《2019-2020年国开发者调查报告》显示,超83%的开发者都在使用MySQL数据库。使用量大同时,掌握MySQL早已是运维、DBA的必备技能,甚至部分IT开发岗位也要求对数据库使用和原理有深入的了解和掌握。 学习编程,你可能会犹豫选择 C++ 还是 Java;入门数据科学,你可能会纠结于选择 Python 还是 R;但无论如何, MySQL 都是 IT 从业人员不可或缺的技能!   套餐一共包含2门MySQL数据库必学的核心课程(共98课时)   课程1:《MySQL数据库从入门到实战应用》   课程2:《高性能MySQL实战课》   【哪些人适合学习这门课程?】  1)平时只接触了语言基础,并未学习任何数据库知识的人;  2)对MySQL掌握程度薄弱的人,课程可以让你更好发挥MySQL最佳性能; 3)想修炼更好的MySQL内功,工作遇到高并发场景可以游刃有余; 4)被面试官打破沙锅问到底的问题问到怀疑人生的应聘者。 【课程主要讲哪些内容?】 课程一:《MySQL数据库从入门到实战应用》 主要从基础篇,SQL语言篇、MySQL进阶篇三个角度展开讲解,帮助大家更加高效的管理MySQL数据库。 课程二:《高性能MySQL实战课》主要从高可用篇、MySQL8.0新特性篇,性能优化篇,面试篇四个角度展开讲解,帮助大家发挥MySQL的最佳性能的优化方法,掌握如何处理海量业务数据和高并发请求 【你能收获到什么?】  1.基础再提高,针对MySQL核心知识点学透,用对; 2.能力再提高,日常工作的代码换新貌,不怕问题; 3.面试再加分,巴不得面试官打破沙锅问到底,竞争力MAX。 【课程如何观看?】  1、登录CSDN学院 APP 在我的课程进行学习; 2、移动端:CSDN 学院APP(注意不是CSDN APP哦)  本课程为录播课,课程永久有效观看时长 【资料开放】 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化。  下载方式:电脑登录课程观看页面,点击右侧课件,可进行课程资料的打包下载。
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页