格式

“#”代表空格,不可缺少

  • [# param1#op# param2 #]

这种带比较操作符的形式,op左右必须使用空格隔开.

如 [# “3”==”2” #]  这种缺少空格的写法会得到结果“true”,当然实际应为”false”.

  • 变量的引用应使用双引号括起来 [# -z “$name” #].

*********************

name="Jim"

[ $name == "Jack" ]   #将会变成 [ Jim == "Jack" ], 也就出现错误了.

*********************

  • 常量应该使用双引号或单引号括起来 [# ‘1’#==#’10’ #].
  • 更好的书写方式:

****************************

a. 中括号内的每一个组件都用空格隔开(可谓釜底抽薪)

b. 变量都以双引号括起来

****************************

参数

-b file                若文件存在且是一个块特殊文件,则为真
-c file                若文件存在且是一个字符特殊文件,则为真
-d file                若文件存在且是一个目录,则为真
-e file                若文件存在,则为真
-f file                若文件存在且是一个规则文件,则为真
-g file                若文件存在且设置了SGID位的值,则为真
-h file                若文件存在且为一个符合链接,则为真
-k file                若文件存在且设置了"sticky"位的值
-p file                若文件存在且为一已命名管道,则为真
-r file                若文件存在且可读,则为真
-s file                若文件存在且其大小大于零,则为真
-u file                若文件存在且设置了SUID位,则为真
-w file                若文件存在且可写,则为真
-x file                若文件存在且可执行,则为真
-o file                若文件存在且被有效用户ID所拥有,则为真
-z string              若string长度为0,则为真
-n string              若string长度不为0,则为真
string1 = string2      若两个字符串相等,则为真
string1 != string2     若两个字符串不相等,则为真
**********************************************************
参与比较的数字必须能够转化为整数,话说那里有这个语法的manual?
int1 -eq int2          若int1等于int2,则为真
int1 -ne int2          若int1不等于int2,则为真
int1 -lt int2          若int1小于int2,则为真
int1 -le int2          若int1小于等于int2,则为真
int1 -gt int2          若int1大于int2,则为真
int1 -ge int2          若int1大于等于int2,则为真
**********************************************************
! expr                  若expr为假则复合表达式为真。expr可以是任何有效的测试表达式
expr1 -a expr2         若expr1和expr2都为真则整式为真
expr1 -o expr2         若expr1和expr2有一个为真则整式为真

linux 使用中括号进行条件判断的更多相关文章

  1. Linux makefile教程之条件判断六[转]

    使用条件判断 —————— 使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支.条件表达式可以是比较变量的值,或是比较变量和常量的值. 一.示例 下面的例子,判断$(CC)变量是否“g ...

  2. Linux学习 -- Shell编程 -- 条件判断

    按照文件类型进行判断 两种格式 test -e /root/install.log [ -e /root/install.log ]   注意空格  适合用于脚本中 echo $?可以看到结果 [ - ...

  3. Linux之shell编程条件判断-if,while,for,case

    if 语法格式 if condition then statements [elif condition then statements] [else statements ] fi 示例 vi if ...

  4. linux shell中的条件判断语句

    http://bbs.chinaunix.net/thread-396805-1-1.html shell 判断语句 流程控制 "if" 表达式 如果条件为真则执行then后面的部 ...

  5. Linux Shell编程 条件判断语法

    if条件判断语句 单分支 if 条件语句 语法格式: if [条件判断式];then 程序 fi 或者 if [条件判断式] then 程序 fi 在使用单分支 if 条件查询时需要注意几点: if ...

  6. [Shell]条件判断与流程控制:if, case, for, while, until

    ---------------------------------------------------------------------------------------------------- ...

  7. 『忘了再学』Shell流程控制 — 33、if条件判断语句(一)

    目录 1.单分支if条件语句 2.双分支if条件语句 (1)示例1 (2)示例2 什么是流程控制? 普通理解:Shell编写的程序是顺序执行的,也就是说第一命令先执行,然后接着执行第二条命令,然后再下 ...

  8. Shell脚本 (三) 条件判断 与 流程控制

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 六.条件判断 1.基本语法 [ condition ](注意condition 前后要有空格) 注意:条 ...

  9. 我们一起来学Shell - shell的条件判断

    文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...

随机推荐

  1. linux使用vi浏览python源码

    一.背景 2018/8/15,这一天要分析一个python项目,因此需要浏览代码,而我使用的是ubuntu 16.04,于是作此文 二.步骤 2.1 获取生成tags文件的脚本 http://svn. ...

  2. supervisor安装与问题

    [转]安装supervisor以及可能碰到的问题 单击此处查看原文 supervisor作为一个进程管理的python软件非常的给力 但是一不小心就会遇到一些问题 就比如下面这个: unix:///v ...

  3. SpringMVC小demo解析

    第一次实际接触SpringMVC,之前在教程网站上看得是概念性的. SpringMVC是属于Java框架SSM中的一环 在做了一个小demo后发现原来编程如此简单. 首先建立动态网页项目(Dynami ...

  4. Vue 组件设计

    Vue 组件设计 Vue 作为 MVVM 框架一员,不管是写业务还是基础服务,都少不了书写组件.本文总结一下书写业务组件的一些心得. 为什么要写组件? 我们知道,只要是组件,就需要在引用的时候与 vi ...

  5. IOS-高仿bilibili项目

    高仿bilibili项目成长之路 (logo) 高仿bilibili项目 Github链接:(https://github.com/MichaelHuyp/Bilibili_Wuxianda) 目前完 ...

  6. 重写vector类,完成基本功能,不含迭代器

    body, table{font-family: 微软雅黑; font-size: 13.5pt} table{border-collapse: collapse; border: solid gra ...

  7. JS代码执行机制

    JS代码从编译到执行 我们写出一段JS代码,JS的引擎并不是按照我们书写的顺序从上到下顺序编译并且执行的,首先是按照自己的规则对我们的代码先进行编译,然后从上到下执行编译的代码. 在全局作用域中,JS ...

  8. Relation.js——基于pixi.js的拓展模块之人物关系图谱

    出于[重构基于D3的关系图谱项目]的目的,在看完pixi.js之后,并且网上又没有现成的基于webgl的关系图谱js库,于是,本人决定自己写一个. 因为平常要工作的原因,进度可能有点慢,但是githu ...

  9. Winform开发之DataGridView的增删改

    DataGridView是一个非常强大的控件,用法很多.这里介绍一个简单的增删改例子. 贴效果图 右侧输入学生信息点击新增,将数据增加到数据库,并且加载到datagridview中,点击选择某条数据修 ...

  10. 【转载】你真的会浮点数与整型数的"互转"吗?

    看了标题,你是不是觉得这TM是哪个iOS彩笔写的入门文章.好的,那咱们先来看看几个例题,看看你有没有白白点进来! int main() { float a = -6.0; int *b = & ...