Shell脚本学习 - 运算符

继续shell脚本学习。上一篇是基本数据类型和语法的总结,这一篇是运算相关的操作。

 

运算符

bash不支持简单的数学计算,需要依赖其他命令实现。

expr可以代为实现。

# 表达式一般这么写
`expr 4 + 4`

注意点:

1. 引号不是普通单引号,是右斜的引号,在esc键下方。表达式用这种右斜的引号括起来,必须成对出现

2. 运算符两边要留空格。4+4不行,必须写成4 + 4

运算符不用多说,和其余编程语言类似。加减乘除取余:+-*/%

赋值用=,比较相等用==,比较不等用!=

特别注意的是*要在前面加反斜杠,写成\*

 

还有就是看到教程中有特别指出的一点:

在 MAC 中 shell 的 expr 语法是:$((表达式)),此处表达式中的 "*" 不需要转义符号 "\" 

 

关系运算符

关系运算符只支持数字,或者值为纯数字的字符串

相等:-eq

不等:-ne

大于:-gt

小于:-lt

大于等于:-ge

小于等于:-le

 

布尔运算符

非:!

或:-o

与:-a

 

逻辑运算符

逻辑与:&&

逻辑或:||

 

字符串运算符

比较两个字符串是否相等:=

比较不等:!=

判断字符串长度是否为0:-z  [-z $a]

判断字符串长度是否非0:-n  [-n "&a"]

判断字符串是否为空:[$a]

 

文件测试运算符

用于检测Unix文件的各种属性

-b file:是否为块设备文件

-c file:是否为字符设备文件

-d file:是否为目录

-f file:是否是普通文件

-g file:是否设置了SGID位

SGID的解释:

SGID是获得该程序所属用户组的权限。SGID主要用在目录上

-k file:是否设置了粘着位(Sticky Bit)

SBIT的解释:

若没有粘滞位,则普通用户可以对目录下的文件/子目录进行删除操作(因为普通用户对目录具有w权限),包括其它用户建立的目录/文件;但若赋了SBIT,则普通用户只能删除自己创建的文件/目录,而不能删除不属于自己的文件/目录!

-p file:是否为有名管道

-u file:是否设置了SUID位

SUID的解释:

让本来没有相应权限的用户运行这个程序时,可以访问他没有权限访问的资源

-r file:是否可读

-w file:是否可写

-x file:是否可执行

-s file:是否文件为空

-e file:文件或目录是否存在

转载于:https://www.cnblogs.com/wuhuohanke/p/10102016.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值