【参考文章】:shell if [[ ]]和[ ]区别 || &&

【参考文章】:Shell test 命令

1. [ ] 和 test

  test  等同于 [ ]

  可用于判断某个条件是否为真。可用于 字符串,数值和文件的测试。

1.1 字符串

  可使用的参数如下:

  也可以使用 ==(等价于=)

  示例:

read -p "str1:" str1
read -p "str2:" str2
# [ 后面和 ] 前面必须使用空格隔开
# = 两端必须使用空格隔开
if [ "$str1" = "$str2" ]
then
echo "str1 == str2"
else
echo "str1 != str2"
fi

1.2 数值

  示例:

 read -p "num1:" num1
read -p "num2:" num2
# [ 后面和 ] 前面必须使用空格隔开
# = 两端必须使用空格隔开
if [ "$num1" -eq "$num2" ]
then
echo "num1 == num2"
else
echo "num1 != num2"
fi if [ "$num1" -gt "$num2" ]
then
echo "num1 > num2"
else
echo "num1 <= num2"
fi

3. 文件

  示例:

 read -p "输入文件路径:" filepath

 if [ -e $filepath ]
then
echo "文件存在"
else
echo "文件不存在"
fi

2. [[ ]]

  [[ ]] 比 [ ] 更强大

  使用 =~ 操作符时, 支持 shell 的正则表达式

 read -p "str1:" str1

 str2=a{}

# [ 后面和 ] 前面必须使用空格隔开
# = 两端必须使用空格隔开
if [[ ${str1} =~ ${str2} ]]
then
echo "str1 == str2"
else
echo "str1 != str2"
fi

shell [ ] 和 [[ ]] 区别的更多相关文章

  1. 交互式shell和非交互式shell、登录shell和非登录shell的区别

    交互式shell和非交互式shell.登录shell和非登录shell的区别.首先,这是两个不同的维度来划分的,一个是是否交互式,另一个是是否登录. 交互式shell和非交互式shell(intera ...

  2. maya shell 和 UV shell 的区别

    maya shell 和 UV shell 的区别 shell 是 maya 模型自身分离的部分 UV shell 是 UV 分离的部分 有多少个shell,就至少有多少个 UV shell,但是一个 ...

  3. sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别

    sh/bash/csh/Tcsh/ksh/pdksh等shell本质区别 1. Shell脚本的书写 在写Shell脚本时,往往第一行要注明用什么解释器来解释这个脚本. 如#!/bin/bash即用/ ...

  4. Shell: sh,bash,csh,tcsh等shell的区别(转)

    转载自:http://zhidao.baidu.com/question/493376840.html, http://blog.sina.com.cn/s/blog_71261a2d0100wmbj ...

  5. sh/bash/csh/Tcsh/ksh/pdksh等shell的区别

    w shell confusion..what is diff between bash, ksh, csh, tcsh..??  http://www.linuxquestions.org/ques ...

  6. login shell 和 non-login shell 的区别

    介绍之前先思考一个问题:有时我们通过su命令切换用户后,却发现并没有进入该用户的shell环境.这是为什么? login shell:取得bash时需要完整的登录流程.就是说通过输入账号和密码登录系统 ...

  7. Makefile与shell脚本区别

    http://blog.chinaunix.net/uid-20672257-id-3345593.html 在Makefile可以调用shell脚本,但是Makefile和shell脚本是不同的.本 ...

  8. login shell 和 non-login shell 的区别

              login shell:去的bash时需要完整的登录流程.就是说通过输入账号和密码登录系统,此时取得的shell称为login shell non-login shell:取得sb ...

  9. git、git bash、git shell的区别

    之前安装了github(CSDN上找的,官网的下不来,貌似要FQ - -)后,自带了git shell,如图: 输命令的时候发现网上的一些命令不管用,譬如:git ls –a 查看隐藏的 .git 文 ...

随机推荐

  1. eureka解析hostname为localhost问题 (转)

    https://blog.csdn.net/liufei198613/article/details/79583686 公司的springcloud已经上线运行,但是最近测试环境老是会出现一个诡异的问 ...

  2. body测试onclick等鼠标事件无效果详解

    DOM事件机制包括五部分: DOM事件级别 DOM事件流 DOM事件模型 事件代理 Event对象常见的方法和属性 但是有时候发现给body标签里设置onclick属性,不起作用,代码如下: 不管单击 ...

  3. WinPE基础知识之重定位表

    typedef struct _IMAGE_BASE_RELOCATION { DWORD VirtualAddress; // (重要)需要重定位的位置,这是一个RVA DWORD SizeOfBl ...

  4. CDH5.16.1的kafka集群报错: No broker in ISR for partition [getngo_collect_apm_test,0]

    1 详细错误 kafka.common.NoReplicaOnlineException: No broker in ISR for partition [getngo_collect_apm_tes ...

  5. 手动编译用于i.MX6系列ARM的交叉编译SDK

    前言: 在前一节中,在使用别的机器(系统:UBUNTU14.04)上编译好的交叉编译SDK,配置在我的电脑(系统:UBUNTU16.04)上,用于bazel编译Tensorflow时会报arm-pok ...

  6. 跟着我一步一步的搭建一个基于springcloud的微服务实例

    Table of Contents generated with DocToc microservicecloud 插件推荐 建立父工程Microservicecloud 搭建Employ员工服务 创 ...

  7. idou老师带教你学Istio 03: istio故障注入功能的介绍和使用

    故障注入测试 故障注入测试顾名思义就是当被测试应用部分组件或功能出现潜在故障时其本身的容错机制是否正常工作,以达到规避故障保证正常组件或功能的使用.Istio提供了HTTP故障注入功能,在http请求 ...

  8. php 常用正则运算

    $regx = "/^[0-9]*$/"; var_dump(preg_match($regx, $phone)); 常用的正则运算: •验证数字:^[0-9]*$ •验证n位的数 ...

  9. SSE

    最近尝试了一下服务器端的推送,之前的做法都是客户端轮询,定时向服务器发送请求.但这造成了我的一些困扰: 1:轮询是由客户端发起的,那么在服务端就不能判别我要推送的内容是否已经过期,因为我很难判断某个信 ...

  10. python——flask常见接口开发(简单案例)

    python——flask常见接口开发(简单案例)原创 大蛇王 发布于2019-01-24 11:34:06 阅读数 5208 收藏展开 版本:python3.5+ 模块:flask 目标:开发一个只 ...