Linux - 简明Shell编程04 - 判断语句(If)
示例脚本及注释
#!/bin/bash
var=$1 # 将脚本的第一个参数赋值给变量var
if test $var # test - check file types and compare values
then
if [ $var == "right" ];then # “[]”是调用test命令的一种形式,"[]"两边必须加空格;
echo "Right!"
elif test $var = "wrong";then # 比较字符串时,“=”等价与“==”,两边必须加空格;
echo "Wrong!"
else
echo "Nothing!"
fi
else
echo "No arguments!"
fi
# ### if/else流程控制
# - elif语句和else语句是非必须语句,根据需要添加;
# - 条件下的执行体不能为空;
#
#
# ### test命令
# - Shell中的test命令用于检查某个条件是否成立,可以进行数值、字符和文件的测试
# - 通常用“[]”来表示条件测试。使用"[]"时,两边必须加空格;
# - 通过man命令获取test命令的详细信息;
# 0)常用
# [ -f somefile ] :判断是否是一个文件
# [ -x /bin/ls ] :判断/bin/ls是否存在并有可执行权限
# [ -n $var ] :判断$var变量是否有值
# [ $a = $b ] :判断$a和$b是否相等
# 1)判断表达式
# if test (表达式为真)
# if test !表达式为假
# test 表达式1 –a 表达式2 两个表达式都为真
# test 表达式1 –o 表达式2 两个表达式有一个为真
# 2)判断字符串
# test –n 字符串 字符串的长度非零
# test –z 字符串 字符串的长度为零
# test 字符串1=字符串2 字符串相等
# test 字符串1!=字符串2 字符串不等
# 3)判断整数
# test 整数1 –eq 整数2 整数相等
# test 整数1 –ge 整数2 整数1大于等于整数2
# test 整数1 –gt 整数2 整数1大于整数2
# test 整数1 –le 整数2 整数1小于等于整数2
# test 整数1 –lt 整数2 整数1小于整数2
# test 整数1 –ne 整数2 整数1不等于整数2
# 4)判断文件
# test File1 –ef File2 两个文件具有同样的设备号和i结点号
# test File1 –nt File2 文件1比文件2 新
# test File1 –ot File2 文件1比文件2 旧
# test –b File 文件存在并且是块设备文件
# test –c File 文件存在并且是字符设备文件
# test –d File 文件存在并且是目录
# test –e File 文件存在
# test –f File 文件存在并且是正规文件
# test –g File 文件存在并且是设置了组ID
# test –G File 文件存在并且属于有效组ID
# test –h File 文件存在并且是一个符号链接(同-L)
# test –k File 文件存在并且设置了sticky位
# test –b File 文件存在并且是块设备文件
# test –L File 文件存在并且是一个符号链接(同-h)
# test –o File 文件存在并且属于有效用户ID
# test –p File 文件存在并且是一个命名管道
# test –r File 文件存在并且可读
# test –s File 文件存在并且是一个套接字
# test –t FD 文件描述符是在一个终端打开的
#
#
# ### “[]”与test命令
# - 实际上“[]”是调用test命令的一种形式;
# - 左中括号“[”是系统的一个内置命令,存在路径是“/bin/[”,是调用test命令的标识;
# - 右中括号“]”是关闭条件判断的标识;
Linux - 简明Shell编程04 - 判断语句(If)的更多相关文章
- Shell - 简明Shell入门04 - 判断语句(If)
示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一个参数赋值给变量var if test $var # test - check file types and compare va ...
- Linux - 简明Shell编程05 - 条件语句(Case)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash var=$1 # 将脚本的第一 ...
- Linux - 简明Shell编程06 - 循环语句(Loop)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash # for循环 for fil ...
- Linux - 简明Shell编程13 - 用户输入(UserInput)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 1 - arguments #!/bin/bash i ...
- Linux之shell编程条件判断-if,while,for,case
if 语法格式 if condition then statements [elif condition then statements] [else statements ] fi 示例 vi if ...
- Linux - 简明Shell编程03 - 字符串(String)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash str="Shell ...
- Linux - 简明Shell编程08 - 函数(Function)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash function Check( ...
- Linux - 简明Shell编程12 - 定制输出(ColorOutput)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo -e "\ ...
- Linux - 简明Shell编程14 - 操作符(Operator)
脚本地址 https://github.com/anliven/L-Shell/tree/master/Shell-Basics 示例脚本及注释 #!/bin/bash echo "No c ...
随机推荐
- 文档模型(JSON)使用介绍
一.背景 E.F.Codd在1970年首次提出了数据库系统的关系模型,从此开创了数据库关系方法和关系数据理论的研究,为数据库技术奠定了理论基础,数据库技术也开始蓬勃发展.而随着几大数据库厂商陆续发布的 ...
- RabbitMQ插件安装
RabbitMQ的有些插件没有集成在初始的安装中,它们需要额外安装,这些文件的后缀为.ez,安装时需要将.ez文件拷贝到安装的插件目录.以下是不同系统中默认安装的插件目录路径: 插件目录 Linux ...
- x01.ExcelHelper: NPOI 操作
Excel 操作,具有十分明显的针对性,故很难通用,但这并不妨碍参考后以解决自己的实际问题. 有一汇总表如下: 当然,只是示范,产品的代码应该唯一!现在要根据此汇总表产生各个客户的产品清单.由于客户较 ...
- springmvc4.0配置ajax请求json格式数据
1.导入相关jar包:jackson-annotation-2.5.4.jar,jackson-core-2.5.4.jar,jackson-databind-2.5.4.jar. 2.spring- ...
- VB6之切换桌面
Desktop的API,用于切换或者系统桌面环境.扩展起来可以做一个锁屏程序或者多桌面程序. 模块部分: 'desktop.bas 'too much struct and declare unuse ...
- java多线程系列(一)
java多线程技能 前言:本系列将从零开始讲解java多线程相关的技术,内容参考于<java多线程核心技术>与<java并发编程实战>等相关资料,希望站在巨人的肩膀上,再通过我 ...
- JS内置对象学习总结
日期对象: 创建日期对象: var date=new Date();//创建日期对象 设置/返回年份方法: date.getFullYear(); date.setFullYear(); 返回星期的方 ...
- java开发必读 书单
希望读的书单 重构 改善既有代码的设计 设计模式 可复用面向对象软件的基础 高性能MySQL第3版 Effective Java第1版 Effective Java第2版 Java核心技术I-基础知识 ...
- OpenStack neutron 环境云主机使用keepalived vip + 给vip绑定浮动IP 步骤及注意事项
在openstack环境创建的多台云主机配置keepalived作主备,默认情况下无法生效,直接对云主机一张网卡配置两个IP进行测试也是同样结果,因为: 可以看到,port所在的宿主机上iptable ...
- 【转载】 ISO14229系列之二:诊断指令格式和相关概念
转载链接:http://www.cnblogs.com/autogeek/p/4458658.html 1. 简单的通信机制 其实诊断通信的机制很简单,可以类比client-server通信方式,即客 ...