首页 > 系统相关 >Shell基本运算符

Shell基本运算符

时间:2023-04-07 11:26:02浏览次数:39  
标签:基本 文件 Shell 是否 运算符 gt file 字符串

Shell和其他编程语言一样,支持多种运算符,包括:
(1)算数运算符
(2)关系运算符
(3)布尔运算符
(4)逻辑运算符
(5)字符串运算符
(6)文件测试运算符

1. 算数运算符

原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr
expr是一款表达式计算工具,使用它能完成表达式的求值操作。
val=`expr 2 + 2` // 表达式和运算符之间要有空格。
假设a=10,b=20
`expr $a + $b` // 30
`expr $a - $b` // -10
`expr $a \* $b` // 200
`expr $b / $a` // 2
`expr $b % $a` // 0
a=$b // b赋值给a
[ $a == $b ] // false
[ $a != $b ] // true

2. 关系运算符

只支持数字,不支持字符串,除非字符串的值是数字。
-eq 是否相等
-ne 是否不相等
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于
---------------
a=10,b=30
[ $a -gt $b]
---------------

3. 布尔运算符

! 非运算符
-o 或运算
-a 与运算

---------------
a=10,b=30
[ $a -gt $b -a $b -gt 15]
---------------

4. 逻辑运算符

&& AND
|| OR
---------------
a=10,b=30
[[ $a -gt $b && $b -gt 15]]
---------------

5. 字符串运算符

= 两个字符串是否相等 //[ $a = $b ]
!= 两个字符串是否不相等 //[ $a != $b ]
-z 字符串长度是否为0 //[ -z $a ]
-n 字符串长度是否不为0 //[ -n "$a" ]
$ 字符串是否不为空 //[ $a ]

6. 文件测试运算符

文件测试运算符用于检测Unix文件的各种属性。
-b file 文件是否是块设备文件
-c file 文件是否是字符设备文件
-d file 文件是否是目录
-f file 文件是否是普通文件(既不是目录,也不是设备文件)
-r file 文件是否可读
-w file 文件是否可写
-x file 文件是否可执行
-s file 文件是否为空(文件大小是否大于0)
-e file 文件(包括目录)是否存在
-S file 文件是否是Socket
-L file 文件是否存在并且是一个符号链接

标签:基本,文件,Shell,是否,运算符,gt,file,字符串
From: https://www.cnblogs.com/lujiango/p/17295577.html

相关文章

  • sqlmap基本使用教程
    转载于https://blog.csdn.net/m0_46230316/article/details/105290227如有侵权,联系删除,感谢......
  • 末尾运算符 ^ 和 范围运算符 ..
    调用表达式()使用括号()调用()或调用委托。以下示例演示如何在使用或不使用参数的情况下调用方法,以及调用委托:Action<int>display=s=>Console.WriteLine(s);varnumbers=newList<int>();numbers.Add(10);numbers.Add(17);display(numbers.Count);//output:2......
  • LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
    一切为了快速迭代importjava.util.ArrayList;importorg.json.JSONObject;importandroid.animation.ObjectAnimator;importandroid.os.Bundle;importandroid.support.v4.widget.SwipeRefreshLayout;importandroid.util.Log;importandroid.vie......
  • Notification的基本用法
    android4.0以前:privatestaticfinalintNOTIFY_ID=0;notificationManager=(NotificationManager)getSystemService(NOTIFICATION_SERVICE); privatevoidshowNotification(Storestore){ Notificationnotification=newNotification(); ......
  • C++运算符重载
    什么是运算符重载运算符重载(Operatoroverload)是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时做出不同的行为。运算符重载的意义运算符重载的本质是函数重载,是实现多态的重要手段,为用户提供了一个直观的接口。调用运算符操作自定义数据类型其实就是调用......
  • 集合的基本概念
    一、集合的概念1、集合和元素的概念康托尔定义:人们无意中或思想中将一些确定的、彼此完全不同的客体的总和,这些客体叫做集合中的元素。        互不相同的、确定的对象的全体称为集合,简称集。这些对象作为集合的成员,称为集合的元素。常用大写字母表示集合,用小写......
  • Shell变量
    简洁Linux的shell有很多,常见的有:(1)BourneShell(/usr/bin/sh或/bin/sh)(2)BourneAgainShell(/bin/sh)(3)CShell(/usr/bin/csh)(4)KShell(/usr/bin/ksh)(5)ShellforRoot(/sbin/sh)....本教程使用Bash,也就是BourneAgainShell,由于易用和免费,Bash在日常工作中被广泛使用。同......
  • 逍遥自在学C语言 | 逻辑运算符
    前言一、人物简介第一位闪亮登场,有请今后会一直教我们C语言的老师——自在。第二位上场的是和我们一起学习的小白程序猿——逍遥。二、构成和表示方式逻辑运算符是用来比较和操作布尔值的运算符C语言中的逻辑运算符主要有3个,如下表所示运算符名称示例描......
  • 学习-ts基本类型
    未完待续.../***基本类型:*为了让程序有价值,我们需要能够处理最简单的数据单元:数字,字符串,结构体*,布尔值等。TypeScript支持与JavaScript几乎相同的数据类型,此外还提供了*实用的枚举类型方便我们使用。*///布尔值letisDone:boolean=true;//数字letdecLite......
  • 基本下拉菜单
    基本下拉菜单当鼠标移动到指定元素上时,会出现下拉菜单。实例<style>.dropdown{position:relative;display:inline-block;}.dropdown-content{display:none;position:absolute;margin:0px;padding:0px;color:gray;">#f9f9f9;min-width:160px;box-shad......