if-then的高级特性

  [[]]、[]都是用来测试( 测试分为数值比较、字符串比较、文件比价 )的,[[]]关键字,里面可以用&&、||、<、>等类似C语言的语法[]bash内嵌的命令,也是用于测试的。[[]]通用性更好些。
(()),类似let,用于计算表达式()可以把多个命令括起来,在一个子shell运行。

  使用方法总结:  

    涉及高级数学运算使用(( ))

    涉及多个命令的执行使用()

    涉及高级语法测试使用 [[ ]]

    涉及bash内嵌的命令使用 []      

1、用于数学表达式的双尖括号

  (( expression )) 允许将高级数学表达式放入比较中。test命令只允许在比较中进行简单的算术操作。

  expression可以是任意的数学赋值或比较表达式。除了test命令使用的标准数学运算符,双尖括号命令符号还有:

  val++  val--  ++val  --val  !  ~  **  <<  >>  &  |  &&  ||

  双尖括号在普通命令中使用是赋值功能。

    (( val2 = $val1 ** 2 ))

2、用于高级字符串处理功能的双方括号

  使用了test命令中采用的标准字符串进行比较。但是它提供了test命令未提供的模式匹配特性。可以定义一个正则表达式来匹配字符串值。如:

    if [[ $USER == r* ]]

Linux shell编程札记的更多相关文章

  1. linux —— shell 编程(文本处理)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 基本文本处理 流编辑器sed aw ...

  2. linux —— shell 编程(编程语法)

    导读 本文为博文linux —— shell 编程(整体框架与基础笔记)的第4小点的拓展.(本文所有语句的测试均在 Ubuntu 16.04 LTS 上进行) 目录 再识变量 函数 条件语句 循环语句 ...

  3. linux shell编程总结

    linux shell编程总结 本周学习了unix/linux shell编程,参考的是<LINUX与UNIX Shell 编程指南>,David Tansley著:徐焱,张春萌等译,由机 ...

  4. Linux Shell编程参考大全

    本文记录Linux Shell编程中常用基本知识,方便快速入门以及查询使用. 本文主要分为以下几个部分: 一.Shell中的变量 任何编程语言中,有关变量的定义,作用范围,赋值等都是最最基础的知识. ...

  5. Linux Shell编程中的几个特殊符号命令 & 、&& 、 ||

    https://blog.csdn.net/hack8/article/details/39672145 Linux Shell编程中的几个特殊符号命令 & .&& . || ...

  6. linux shell 编程参考

    #!/bin/bash my_fun() { echo "$#" } echo 'the number of parameter in "$@" is '$(m ...

  7. Linux Shell编程与编辑器使用详解

    <Linux Shell编程与编辑器使用详解> 基本信息 作者: 刘丽霞 杨宇 出版社:电子工业出版社 ISBN:9787121207174 上架时间:2013-7-22 出版日期:201 ...

  8. linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行

    linux shell编程,先等10秒再判断是否有进程存在,存在就再等10秒再杀了进程才运行 crontab每分钟执行一次,但5秒以上才有更新数据,有时候一分钟可能跑不完上一个进程,需要先等10秒再判 ...

  9. 一文学完Linux Shell编程,比书都好懂

    一. Shell 编程 1. 简介 Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务. Shell 既是一种命令语言,又是一种程序设计语言. Shell scr ...

随机推荐

  1. 元素ID命名规范

    因为本框架默认所有内容都位于一个Document中,所以为元素命名为ID的时候需要做到唯一性,如果确实不可避免的会出现有重读ID的现象,需要操作当前页片(页面片段,就是子页面)的时候,尽量用: $.C ...

  2. 数组的filter方法

    filter()函数用于过滤序列,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素. eg: var arr=[10,11,12,13,14 ...

  3. 2013年7月份第1周51Aspx源码发布详情

    启睿网络信息服务器实例源码  2013-7-5 [ VS2005 ]功能介绍:睿网络信息服务器,QiRui Net Information Services简称QRNIS,该软件前身系KCIS.当前版 ...

  4. Gradle: The New Android Build System

    Gradle: The New Android Build System Google selected Gradle as the foundation of the Android SDK bui ...

  5. SAP财务常用数据源概览

    一. 0FI_GL_10总分类账:领先分类账余额 Delta Update : AIED After Images Marked for Deletion via Extractor (FI-GL/A ...

  6. (spring-第12回【IoC基础篇】)JavaBean的属性编辑器

    在spring实例化bean的最后阶段,spring利用属性编辑器将配置文件中的文本配置值转换为bean属性的对应值,例如: 代码0011 <bean id="car" cl ...

  7. win7笔记本无线连上无法上网

    打开 控制面板----网络与共享中心------更改适配器属性-----找到你的WIFI的那个适配器右键属性----双击internet协议版本4---点上自动获取IP和DNS

  8. 【Tsinghua OJ】祖玛(Zuma)问题

    描述 祖玛是一款曾经风靡全球的游戏,其玩法是:在一条轨道上初始排列着若干个彩色珠子,其中任意三个相邻的珠子不会完全同色.此后,你可以发射珠子到轨 道上并加入原有序列中.一旦有三个或更多同色的珠子变成相 ...

  9. Android库Volley的使用介绍

    Android Volley 是Google开发的一个网络lib,可以让你更加简单并且快速的访问网络数据.Volley库的网络请求都是异步的,你不必担心异步处理问题. Volley的优点: 请求队列和 ...

  10. VMware与Cisco etherchannel

    命令样例: ①把要绑定team的端口添加到channel-group interface Te2/1/1 switchport switchport access vlan 123 switchpor ...