bash 脚本编程2 条件判断 (笔记)
条件判断类型:
整数测试
字符测试
文件测试
条件表达式: [ exppression ] ` expression ` test expression
注意一定要加空格前后都要加
整数比较: -eq 测试两个整数是否相等,相等为真,不等为假。 equal
-ne 测试两个整数是否不相等,不相等为真,否则为假 not equal
-gt 测试一个整数是否大于另一个,大于为真,否则为假。 greater than
-lt 测试一个速度是否小于另一个,小于为真,否则为假。 less than
-ge 大于或等于 greater than or equal
-le 小于或等于 less than or equal
命令间的逻辑关系 逻辑与 && 逻辑或 ||
变量命名规则:1.只能包含字母、数字和下划线,并且不能数字开头。
2.不应该跟系统中已有的环境变量重名。
3.最好做到见名知意。(即看到名字明白其含义)。
下面则是几个应用小实例:
整数比较:
比较两个变量其中一个是否比另一个大:
[root@localhost ~]# A=3
[root@localhost ~]# B=2
[root@localhost ~]# [ $A -gt $B ] (切记要加空格哦!!前后都要,否则会提示语法问题)
[root@localhost ~]# echo $?
0
[root@localhost ~]#
逻辑与&&和逻辑或|| 的运用
逻辑与&&
[root@localhost ~]# id user1 &> /dev/null && echo "hello, user1"
hello, user1
[root@localhost ~]#
上边的命令的含义是 如果前边的命令为真(即执行成功)则后边也跟着执行
即串连电路 第一个为真则检查第二条,
即两条命令都执行
真 真 结果为真
假 真 结果为假
真 假 结果为假
假 假 结果为假
逻辑或||
[root@localhost ~]# id user2 &> /dev/null || useradd user2
此命令解释: 如果用户不存在则添加此用户逻辑或||
只要有一个真则结果为真 反过来 只有全为假结果才为假 即:
真 真 结果真
真 假 结果真
假 真 结果真
假 假 结果假
即并连电路,有一条电路通则结果就通
[root@localhost ~]# ! id user1 &> /dev/null && useradd user1
非 ! 即 非真即假 非假即真 结合后边的 与运算 也可以实现
如果用户不存在则添加此用户
条件判断 控制结构
单分支IF语句
if 如果 判断条件; then 然后(注意如果then和if不在同一行可以省略;分号)
statement1
statement2
...
if (结束)
双分支语句
if 判断条件
then 然后
statement 1
statement2
statement3
else 否则
statement4
statement5
fi 结束
上边的相信估计看不懂,,下边举一个例子:
显示一个用户的是否为系统用户 即ID为0 如果是则输出administrator 不是则 common
此脚本写法:
#!/bin/bash
NAME=root
if [ `id -u $NAME` -eq 0 ] ;
then
echo "this is administrator"
else
echo "this is common user"
fi
解释: 如果变量$NAME即root的ID为0则输出this is administrator
否则 即ID不等于0时 则输出 this is common user
转载于:https://blog.51cto.com/winthcloud/1624687
相关文章:

matlab视频保存为图片
将如下代码保存到m文件,不是函数文件,是script文件, matlab 将视频保存为图片 可以根据需要自行修改 [filename,pathname,fileindex]uigetfile(*.avi,请选择一个Avi文件); dnameuigetdir(c:/,保存到); dname[dname \]; video_infoVideoRea…

Blender车辆绑定动画制作视频教程
MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:72节课(22小时9m) |大小解压后:22 GB 含课程项目素材 ~在Blender中为动画装配汽车、卡车、轨道和…

Redis初学:5(String类型的基本操作)
String类型 String类型是Redis中最基本的类型,String类型有以下的一些特点: String类型是二进制安全的,这意味着String类型可以包含任何的数据,如:图片、序列化的对象等;Redis中一个String类型的value的大…

【PL/SQL】--导出oracle单表数据--drp204
转载于:https://www.cnblogs.com/wangmei/p/5187660.html

使用模块化编译缩小 apk 体积
libcocos2dlua.so编译出来有11M多,其中包含了很多不需要的模块,模块化编译,把不需要用到的模块弄成0,体积就小了。 如: 修改D:\codeide\sDiShu2formm\frameworks\runtime-src\proj.android\jni\Application.mk为 ifeq …

matlab2013a vs2013 opencv2.4.8 编译TLD
出现如下错误是因为编译方法不对,bb_overlap.cpp(36) : error C3861: “min”: 找不到标识符 bb_overlap.cpp(36) : error C3861: “max”: 找不到标识符 bb_overlap.cpp(37) : error C3861: “min”: 找不到标识符 bb_overlap.cpp(3…

UE5和Blender中的完整场景环境创建学习教程
UE5和Blender中的完整环境创建–深入课程 MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确)|时长:80节课(30h 48m) |大小解压后:28 GB 了解专业环境艺术家…

Redis初学:6(List类型)
List类型 List的特点:单键多值 Redis的List是简单的字符串列表,按照插入顺序排序。可以添加一个元素到列表的头部(左边)或者尾部(右边)。 它的底层实际是个双向链表,对两段的操作性能很高&…

2.交叉工具链
2.交叉工具链 一、交叉工具链: 交叉工具链,其实他有两个含义,一个就是交叉工具,所谓的交叉工具就是运行的环境和编译的环境不是在一体的。就像我们现在,编译裸机程序是在pc机上面执行的。可我们运行程序是在开发板。…

Windows内存管理和linux内存管理
windows内存管理 windows 内存管理方式主要分为:页式管理,段式管理,段页式管理。 页式管理的基本原理是将各进程的虚拟空间划分为若干个长度相等的页;页式管理把内存空间按照页的大小划分成片或者页面,然后把页式虚拟地…

UltraEdit 21激活
无需断网 UE v21.00.0.1033激活UE v21.00.0.1033激活UE v21.00.0.1033激活UE v21.00.0.1033激活UE v21.00.0.1033激活 UE v21.00.0.1056激活UE v21.00.0.1056激活UE v21.00.0.1056激活UE v21.00.0.1056激活UE v21.00.0.1056激活 点击我去下载激活器 如果激活遇到“ultraEdit …

Unity创建使用操纵杆飞行动画教程
Unity 3d移动超级英雄使用操纵杆飞行 MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz,2 Ch 语言:英语中英文字幕(根据原英文字幕机译更准确) |时长:20节课(5h 16m) |大小解压后:3.37 GB 含 COURSE FOLDER FIL…

Redis初学:7(Set类型)
Set集合类型 简介 Redis里面的Set类型跟Java里面的Set一样,都是带有自动除重的,它里面不会出现重复的数据。 特点:自动除重 底层数据结构 Redis中的Set是一个String类型的无序集合,它的底层其实是一个value值为null的hash表&a…

GitHub上README.md教程
http://blog.csdn.net/kaitiren/article/details/38513715 最近对它的README.md文件颇为感兴趣。便写下这贴,帮助更多的还不会编写README文件的同学们。 README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑…

SolidWorks大师班:从基础到专业学习教程
流派:电子学习| MP4 |视频:h264,1280720 |音频:AAC,44.1 KHz 语言:英语中英文字幕(根据原英文字幕机译更准确)|大小解压后:2.4 GB 含课程文件 |时长:3h 11m 从基础开始学习SolidWorks,借助本课程达到极致。…

Delphi 之Copyrect的使用
http://cqujsjcyj.iteye.com/blog/380970 Copyrect的使用(图片复制、放大、以及做图片放大镜等)一、从一个选取一个区域中的图象到另一个图象组件中的固定区域procedure TForm1.Button1Click(Sender: TObject);var rtDest, rtSource: TRect; rtIndex: …

Redis初学:8(Hash类型)
Hash(哈希)类型 简介 Redis中的hash是一个键值对集合。它是一个String类型的field和value的映射表,所以它特别适合用来存储对象。 如下图: Redis中的hash类似于Java中的Map<String,Object>。 底层数据结构 Hash类型对…

在JLabel上显示图片,并且图片自适应JLabel的大小
本文转载地址: http://blog.csdn.net/xiaoliangmeiny/article/details/7060250 在写《Core Java》上的示例代码时,其中有一个FileChooserTest是打开一张图片,并在Label上显示出来,但是这个示例程序有缺点,由于窗口的大…

适合编程的字体
编程字体从美观和易辩上来说,Deja Vu 是我最喜欢的免费字体家族之一,基于Vera字体家族。 非常容易辨别小写字母L,小写字母I和数字1;字母o,O和数字0. 还有几款比较受欢迎的字体,列在下面,挑选…

Blender和Substance Painter复古相机创作学习教程
时长2h 30m 1280X720 MP4 大小解压后:2G 含课程文件 语言:英语中英文字幕(根据原英文字幕机译更准确) Blender 3D和Substance Painter中的复古相机创作 课程获取:Blender和Substance Painter复古相机创作学习教程-云…

20160203.CCPP体系详解(0013天)
程序片段(01):数组.c02.数组初始化语法.c 内容概要:数组 ///01.数组.c #include <stdio.h> #include <stdlib.h>//01.采用容器结构存储数据的要点: // 1.必须为每个数据分配独立的存储空间 // 2.必须为每个数据分配独立的标识符(变量名称) //02.C语言之C99语法的…

Redis初学:9(Zset类型)
Zset(有序集合)类型 简介 Redis里面的有序集合Zset和集合Set非常相似,都是一个没有重复元素的字符串集合。 不同之处是有序集合Zset里面的每个成员都关联了一个评分(score),这个score被用来按照从最低分到…

QQ和新浪微博登陆第三方的简单实现
一、微博登陆第三方 0、去开发平台完成开发者认证:http://open.weibo.com/developers/basicinfo 创建一个示例应用,获取APPKey 1、登陆有两种方式:jshtml和WBML部署。以jshtml为例,申请到APPKey之后,引入js,要替换掉ap…

matlab 取消figure显示时在屏幕最前
matlab 取消figure显示时在屏幕最前 matlab 取消figure显示时在屏幕最上层。 matlab运行代码或调试代码时,如果要显示图片figure或者画plot等,如果用的代码不合适, 会使得figure获取屏幕焦点,跑到屏幕最上方。如果跑代码的同时…

使用Blender Houdini轻松学习FX特效
大小:1G 含课程文件 时长1h 1280X720 MP4 语言:英语中英文字幕(根据原英文字幕机译更准确) 使用Blender & Houdini学习轻松的FX 信息: 使用Houdini和Blender轻松制作逼真的外汇模拟 Learn Easy FX with Blender & Houdin…

angular初步认识一
最近比较流行MVC前端框架开发,最近研究了一个框架AngularJS框架 不说那么多,先上例子,我是个代码控 <!DOCTYPE html> <html lang"en" ng-app"myApp"> <head><meta charset"UTF-8"><…

Redis初学:11(Redis的配置文件)
Redis的配置文件 Units单位 配置大小单位,开头定义了一些基本的度量单位,只支持bytes,不支持bit。 大小写不敏感,可以用大写也可以用小写。 Includes包含 类似jsp中的include,多实例的情况可以把公用的配置文件提取出来。 Ne…

目标跟踪之卡尔曼滤波---理解Kalman滤波的使用
http://www.cnblogs.com/jcchen1987/p/4371439.html转载于:https://www.cnblogs.com/pengkunfan/p/4372647.html
为什么对高斯分布的方差的极大似然估计是有偏的?
本文要证明为什么对高斯分布的方差的极大似然估计是有偏的。同时,也说明为什么求样本方差时,分母是N-1而不是N。 首先,明白两点,(1)极大似然法得到的高斯方差是什么形式(2)什么是有…

使用Blender中的几何节点创建程序对象
大小解压后:2.4G 持续时间3h 30m 1280X720 MP4 语言:英语中英文字幕(根据原英文字幕机译更准确) 使用Blender中的几何节点按程序创建对象 信息: 使用Blender中的几何节点按程序创建对象 开始在Blender中使用非破坏性技术和几何节…