格式一:test [参数] 判断内容
格式二:[ [参数] 判断内容 ]
  说明:
    a.格式二可以认为是格式一的缩写
    b.格式二里中括号和内容之间要有空格

基于文件的判断
-d  判断文件是否存在,并且是目录文件
-e  判断文件是否存在
-f  判断文件是否存在,并且是普通文件
-l  判断文件是否存在,并且为符号连接文件
[root@localhost temp]# test -e /etc/passwd
[root@localhost temp]# echo $?
0
[root@localhost temp]# [ -e /etc/passwd ]
[root@localhost temp]# echo $?
0
[root@localhost temp]# [ -d /root ] && echo "yes" || echo "no"
yes

基于文件权限的判断
-r   文件 判断文件是否存在,并且拥有读权限
-w  文件 判断文件是否存在,并且拥有写权限
-x   文件 判断文件是否存在,并且拥有执行权限
[root@localhost temp]# [ -r data.txt ] && echo "yes" || echo "no"
yes

两个文件之间的比较
文件1 -nt 文件2  文件1的修改时间比文件2新
文件1 -ot 文件2  文件1的修改时间比文件2晚
文件1 -ef 文件2  文件1和文件2的inode号是否一样
[root@localhost temp]# ln /xiaol/temp/data.txt /xiaol/temp/lndata.txt
[root@localhost temp]# [ /xiaol/temp/data.txt -ef /xiaol/temp/lndata.txt ] && echo "yes" || echo "no"
yes

两个整数之间的比较
用的是:-eq -ne -gt -lt -ge -le这些,就不多解释了
[root@localhost temp]# [ 23 -ge 22 ] && echo "yes" || echo "no"
yes

两个字符串之间的比较
-z 字符串  判断字符串是否为空
-n 字符串  判断支付传是否为非空
串1 == 串2  两个字符串相等
串1 != 串2   两个字符串不相等
[root@localhost temp]# a=1
[root@localhost temp]# b=2
[root@localhost temp]# [ "$a" == "$b" ] && echo "yes" || echo "no"
no

[root@localhost temp]# name=xiaol
[root@localhost temp]# [ -z "$name" ] && echo "yes" || echo "no"
no

多个判断一起执行
判断1 -a 判断2  逻辑与
判断1 -o 判断2  逻辑或
! 判断1       逻辑非

Linux中的判断式的更多相关文章

  1. Linux学习-善用判断式

    利用 test 指令的测试功能 要检测系统上面某些文件或者是相关的属性时,利用 test 这个指令来工作真是好用得不 得了, 举例来说,我要检查 /dmtsai 是否存在时,使用: [dmtsai@s ...

  2. linux 中 && 及|| 判断原理

    [root@linuxprobe ~]# [ $USER = root ] && echo "root" || echo "user"root[ ...

  3. linux bash善用判断式

    1.利用 test 指令的测试功能 $ test -e hello.sh && echo "ok" || echo "no" ok 2.首先,判 ...

  4. 浅谈Linux中的各种锁及其基本原理

    本文首发于:https://mp.weixin.qq.com/s/Ahb4QOnxvb2RpCJ3o7RNwg 微信公众号:后端技术指南针 0.概述 通过本文将了解到如下内容: Linux系统的并行性 ...

  5. Linux中的各种锁及其基本原理

    Linux中的各种锁及其基本原理 1.概述 通过本文将了解到如下内容: Linux系统的并行性特征 互斥和同步机制 Linux中常用锁的基本特性 互斥锁和条件变量 2.Linux的并行性特征 Linu ...

  6. linux中判断一个命令是否执行成功

    每一条基本命令执行后都有一个返回码,该返回码是用$?表示,执行成功的返回码是0,例如:if [ $? -ne 0 ];then 上一命令执行失败时的操作else 上一命令执行成功时的操作fi例如lin ...

  7. Linux学习十八之、善用判断式

    原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_3.php 善用判断式 在第十一章中,我们提到过 $? 这个变量所 ...

  8. Linux程序开发中如何判断目录是否为根目录?

    问题引入 判断某个目录字符串是否是根目录,咋一听很简单,只要判断字符串是否是"/"即可,但是,很多情况下使用的路径是相对路径,那么如何判断相对路径是根目录呢? 思路分析 熟悉Lin ...

  9. 聊聊 Linux 中的五种 IO 模型

    本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538919&idx=1&sn=6013c451 ...

随机推荐

  1. hdu 3641 数论 二分求符合条件的最小值数学杂题

    http://acm.hdu.edu.cn/showproblem.php?pid=3641 学到: 1.二分求符合条件的最小值 /*================================= ...

  2. android studio - 隐藏编辑器上面的竖线

    android studio 的代码编辑器上面默认有一条竖线不知道是干什么用的,很难看.可以用下列方法进行隐藏. 取消选中这个复选框即可.

  3. Swift 烧脑体操一

    Swift 烧脑体操(一) - Optional 的嵌套   前言 Swift 其实比 Objective-C 复杂很多,相对于出生于上世纪 80 年代的 Objective-C 来说,Swift 融 ...

  4. 获取UUID

    UDID 设备的唯一标识符,也就是设备的序列号,在iOS2.0版本中UIDevice提供了一个获取设备唯一标识符的方法uniqueldentifier,这个方法也是为一个可以确认获取此标识符的方法.但 ...

  5. 非侵入式Ajax

    基本准备 首先,新建一个ASP.NET MVC 3的空项目. 然后新增一个Model,代码如下: using System; using System.Collections.Generic; usi ...

  6. keypad代码分析

    keypad作为input设备注册到内核,与platform总线驱动match. 1.描述一个输入设备对象 static struct input_dev *kpd_input_dev; 告知输入子系 ...

  7. atom安装插件

    1. 由于墙的原因,在界面中安装不了 先安装 npm 可以下载node.js桌面版命令行 2.打开命令行中进入atom的安装目录,进入到packages 中 3. 进入github 官网 输入你要下载 ...

  8. Spring帖子汇总

    SpringMVC表单标签简介 http://haohaoxuexi.iteye.com/blog/1807330 Spring MVC 教程,快速入门,深入分析 http://elf8848.ite ...

  9. jq中写PHP

    var id="$defaultId"; if(!id){ $("#tag_url").addClass("div_display_none" ...

  10. 我的第三个java程序 两数相加

    import java.util.Scanner; public class Test { public static void main(String [] args) { Scanner sc = ...