2.7 Shell运算符

Bash 支持很多运算符,包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。expr 是一款表达式计算工具,使用它能完成表达式的求值操作。

2.7.1 算数运算符

val=`expr  + `
echo "2+3 is ${val}" var2=`expr \* `
echo "3*2 is ${var2}" var4=
var5=
if [ ${var4} != ${var5} ]
then
echo "var4 is not equals var5"
fi

通过上面的代码可以看出,在通过Shell进行算数运算时,需要注意以下几点:

  • 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
  • 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
  • 乘号(*)前边必须加反斜杠(\)才能实现乘法运算。
  • 条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ]。

常用的算数运算符如下:

2.7.2 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

a=
b=
if [ ${a} -le ${b} ]
then
echo "a is less or equals to b"
else
echo "a is greater than b"
fi

常用关系运算符如下:

2.7.3 布尔运算符

布尔运算符用于多个条件的连接。

a=
b=
if [ ${a} -le -o ${b} -gt ]
then
echo "23<=23 || 2>23 true will echo..."
else
echo "23<=23 || 2>23 not true"
fi

常用布尔运算符如下:

2.7.4 字符串运算符

a="hello"
if [ -z ${a} ]
then
echo "-z ${a} : string length is zero"
else
echo "-z ${a} : string length is not zero"
fi

常用的字符串运算符如下:

2.7.5 文件测试运算符

file="/mnt/hhh.txt"
if [ -e ${file} ]
then
echo "File exists"
else
echo "File does not exist"
fi

常用的文件测试符如下:

2.8 注释

2.8.1 单行注释

单行注释在行首用 “#”来表示该行为注释。

#我是单行注释

2.8.2 多行注释

Shell的多行注释比较特殊,格式为“:<<!   ···内容···    !”。注意:不是“# 内容 #”的格式。

:<<!
file="/mnt/hhh.txt"
我是多行注释
!

(二)Linux Shell编程——运算符、注释的更多相关文章

  1. 前端学习 linux —— shell 编程

    前端学习 linux - shell 编程 shell 原意是"外壳",与 kernel(内核)相对应,比喻内核外的一层,是用户和内核沟通的桥梁.shell 有很多种,国内通常使用 ...

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

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

  3. Linux Shell编程参考大全

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

  4. linux shell 编程参考

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

  5. Shell脚本系列教程二: 开始Shell编程

    Shell脚本系列教程二: 开始Shell编程 2.1 如何写shell script? (1) 最常用的是使用vi或者mcedit来编写shell脚本, 但是你也可以使用任何你喜欢的编辑器; (2) ...

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

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

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

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

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

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

  9. linux shell编程总结

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

随机推荐

  1. tomcat启动时间修改

    Server Tomcat v6.0 Server at localhost was unable to start within 45 seconds. If the server requires ...

  2. Word 页眉插入自动标题(页眉显示章节标题)

    做word文档时有时候需要将章节标题加到页眉中,这里实现自动获取和自动更新页眉里面的标题 1.双击页眉,输入固定文字作为页眉左边的显示,然后敲2下table键,为接下来插入自动标题做好准备,如下图: ...

  3. Kmeans算法原理极其opencv实现(转帖)

    原帖地址:http://blog.csdn.net/qll125596718/article/details/8243404 1.基本Kmeans算法[1] 选择K个点作为初始质心  repeat  ...

  4. rotate-function

    https://leetcode.com/problems/rotate-function/ public class Solution { public int maxRotateFunction( ...

  5. Lichee (五) sysconfig1.fex 配置系统

    sysconfig配置系统,作为一个通用的软件平台,还希望通过它,可以适应用户不同的方案.通过给出一个对应的配置,用户的方案就可以自动运行,而不需要修改系统里面的代码,或者重新给出参数. 配置脚本的本 ...

  6. [Python爬虫]煎蛋网OOXX妹子图爬虫(1)——解密图片地址

    之前在鱼C论坛的时候,看到很多人都在用Python写爬虫爬煎蛋网的妹子图,当时我也写过,爬了很多的妹子图片.后来煎蛋网把妹子图的网页改进了,对图片的地址进行了加密,所以论坛里面的人经常有人问怎么请求的 ...

  7. 使用C#创建及调用WCF完整实例 (Windows服务宿主)

    关于WCF的概念.原理.优缺点等,在这里就不多说了,网上很多,可以自行搜索,比我解释的要专业的多. 这里直接说使用Windows 服务(Windows Service)作为宿主如何实现,其它方式不在此 ...

  8. 【转】Arp的攻防实战

    坦白讲,我是个小白,也就是各大黑客和安全厂商所说的目标群体,前者是攻击我,后者有可能保护我.但是无论如何,这次后者应该也很无能为力了——我遭遇到了传说中的Arp攻击. 在连续一周的时间里,我发现我无法 ...

  9. ElasticSearch+Kinaba 在Windows下的安装

    转自:https://blog.csdn.net/qq_28795681/article/details/79723455 1.下载安装java 2.下载ElasticSearch和Kinaba,并解 ...

  10. GridControl 分组排序

    方法一:纯代码 this.list.gridControl.ItemsSource = lsItem; this.list.gridControl.GroupBy("GroupTitle&q ...