位置: 编程技术 - 正文

shell 基本计算、逻辑运算、位运算详解(shell 计算表达式)

编辑:rootadmin
以下面的格式提供运算表达式:$(( expression )) $ echo $((5*(3+3))) $ result = $(($myvar-)) shell提供方便的数之间的进制转换: $ echo $(())#八进制 $ echo $((0xA4))#十六进制 还可以使用以下格式指定 2 到 之间的任意进制: $((BASE#NUMBER)) echo $((8#)) echo $((#D8)) 在 Shell 中进行进制转换的另一个诀窍是使用 bc, 它是一种任意精度运算语言,大多数 UNIX 安装程序都提供。因为它允许您指定输出进制,所以当您需要以十进制以外的进制输出时,这是一种很好的技术。 bc 的特殊变量 ibase 和 obase 分别包含用于输入和输出的进制的值。缺省情况下,都被设置为 。要执行进制转换,需要改变其中的一个或两个值,然后提供一个数字。 了解了这些基本特性,下边再看看逻辑运算符和逻辑表达式,基本的 + ? * / % 不再赘述。 一、逻辑运算符 逻辑卷标表示意思1.关于档案与目录的侦测逻辑卷标!-f常用!侦测『档案』是否存在 eg: if [ -f filename ]-d常用!侦测『目录』是否存在-b侦测是否为一个『 block 档案』-c侦测是否为一个『 character 档案』-S侦测是否为一个『 socket 标签档案』-L侦测是否为一个『 symbolic link 的档案』-e侦测『某个东西』是否存在!2.关于程序的逻辑卷标!-G侦测是否由 GID 所执行的程序所拥有-O侦测是否由 UID 所执行的程序所拥有-p侦测是否为程序间传送信息的 name pipe 或是 FIFO (老实说,这个不太懂!)3.关于档案的属性侦测!-r侦测是否为可读的属性-w侦测是否为可以写入的属性-x侦测是否为可执行的属性-s侦测是否为『非空白档案』-u侦测是否具有『 SUID 』的属性-g侦测是否具有『 SGID 』的属性-k侦测是否具有『 sticky bit 』的属性4.两个档案之间的判断与比较 ;例如[ test file1 -nt file2 ]-nt第一个档案比第二个档案新-ot第一个档案比第二个档案旧-ef第一个档案与第二个档案为同一个档案( link 之类的档案)5.逻辑的『和(and)』『或(or)』&&逻辑的 AND 的意思||逻辑的 OR 的意思运算符号代表意义=等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串!=不等于 应用于:整型或字符串比较 如果在[] 中,只能是字符串<小于 应用于:整型比较 在[] 中,不能使用 表示字符串>大于 应用于:整型比较 在[] 中,不能使用 表示字符串-eq等于 应用于:整型比较-ne不等于 应用于:整型比较-lt小于 应用于:整型比较-gt大于 应用于:整型比较-le小于或等于 应用于:整型比较-ge大于或等于 应用于:整型比较-a双方都成立(and) 逻辑表达式 ?a 逻辑表达式-o单方成立(or) 逻辑表达式 ?o 逻辑表达式-z空字符串-n非空字符串二、逻辑表达式 test 命令 使用方法:test EXPRESSION 如: [root@localhost ~]# test 1 = 1 && echo ‘ok' ok [root@localhost ~]# test -d /etc/ && echo ‘ok' ok [root@localhost ~]# test 1 -eq 1 && echo ‘ok' ok [root@localhost ~]# if test 1 = 1 ; then echo ‘ok'; fi ok 注意:所有字符 与逻辑运算符直接用“空格”分开,不能连到一起。 精简表达式 [] 表达式 [root@localhost ~]# [ 1 -eq 1 ] && echo ‘ok' ok [root@localhost ~]# [ 2 < 1 ] && echo ‘ok' -bash: 2: No such file or directory [root@localhost ~]# [ 2 < 1 ] && echo ‘ok' [root@localhost ~]# [ 2 -gt 1 -a 3 -lt 4 ] && echo ‘ok' ok [root@localhost ~]# [ 2 -gt 1 && 3 -lt 4 ] && echo ‘ok' -bash: [: missing `]‘ 注意:在[] 表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码 位置作为比较。 不直接支持<>运算符,还有逻辑运算符|| && 它需要用-a[and] ?o[or]表示 [[]] 表达式 [root@localhost ~]# [ 1 -eq 1 ] && echo ‘ok' ok[root@localhost ~]$ [[ 2 < 3 ]] && echo ‘ok' ok [root@localhost ~]$ [[ 2 < 3 && 4 > 5 ]] && echo ‘ok' ok 注意:[[]] 运算符只是[]运算符的扩充。能够支持<,>符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符:|| && 三、性能比较 bash的条件表达式中有三个几乎等效的符号和命令:test,[]和[[]]。通常,大家习惯用if [];then这样的形式。而[[]]的出现,根据ABS所说,是为了兼容><之类的运算符。以下是比较它们性能,发现[[]]是最快的。 $ time (for m in {1..}; do test -d .;done;) real 0m0.s user 0m0.s sys 0m0.s $ time (for m in {1..}; do [ -d . ];done;) real 0m0.s user 0m0.s sys 0m0.s $ time (for m in {1..}; do [[ -d . ]];done;) real 0m0.s user 0m0.s sys 0m0.s 不考虑对低版本bash和对sh的兼容的情况下,用[[]]是兼容性强,而且性能比较快,在做条件运算时候,可以使用该运算符。 四、按位操作运算符 运算符名称举例解释value的值<<左移value=4>>左移2位,value值为>>右移value=8<<右移2位,value值为2&按位与value=8&&按位与4,value值为0|按位或value=8|按位或4,value值为~按位非value=~8按位非8,value值为-9^按位异或value=^按位异或3,value值为9注: 对于按位非,若求“~a”则结果为-(a+1)举一个详细例子:求“~8”分析由于计算机通常 用补码进行符号运算,[[x]补]补=[x]所以 则8的二进制为 求非为 求反码为求补码为所以最后的结果为,~8 即为-9。

推荐整理分享shell 基本计算、逻辑运算、位运算详解(shell 计算表达式),希望有所帮助,仅作参考,欢迎阅读内容。

shell 基本计算、逻辑运算、位运算详解(shell 计算表达式)

文章相关热门搜索词:shell中的计算,shell计算命令,shell脚本计算,shell 算数计算,shell 计算表达式,shell 计算表达式,shell中的计算,shell 算数计算,内容如对您有帮助,希望把文章链接给更多的朋友!

hbase shell基础和常用命令详解 HBase是GoogleBigtable的开源实现,它利用HadoopHDFS作为其文件存储系统,利用HadoopMapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。1.简介HBase是一

shell 中数学计算总结 1、错误方法举例a)var=1+1echo$var输出的结果是1+1,悲剧,呵呵b)var=1var=$var+1echo$var输出结果是1+1,依然悲剧,呵呵2、正确方法1)使用letvar=1let"var+=1"echo$var输

shell 字符串操作(长度,查找,替换)详解 工作中字符串操作举例filename='/home/admin/jobs/CnClickstat/DFSLoader/loader.cfg'#下面是使用shell字符串操作buName1=${filename#*/jobs/}#去除'/home/admin/jobs/CnClickstat/DFSLoader/

标签: shell 计算表达式

本文链接地址:https://www.jiuchutong.com/biancheng/378331.html 转载请保留说明!

上一篇:关于Shell脚本效率优化的一些个人想法(shell脚本用法)

下一篇:hbase shell基础和常用命令详解(hbase shell split)

  • 短期借款的实际资金成本
  • 员工的生日津贴怎么发
  • 所得税季度交吗
  • 公司内控制度由谁制定
  • 纳税人销售自产门窗并负责安装
  • 小规模纳税人汇算清缴要填什么表
  • 职工个人代扣款如何做账
  • 远期转账支票怎么取钱
  • 应付职工薪酬的账务处理
  • 税务登记时要财务确认吗
  • 土地闲置费是否可以列入生产成本
  • 有子公司一定要交社保吗
  • 商业承兑汇票贴现为什么是短期借款
  • 公司拨付工会经费怎么算的
  • 或有负债如何计量
  • 老板请客吃饭拿餐饮发票公司报销怎么账务处理?
  • 积分兑换现金的平台
  • word2013压缩图片
  • 政府补助计量的基础是
  • 个人所得税投诉电话是多少
  • php实现的mongodb操作类实例
  • 台式电脑清洗步骤图解
  • 民营非盈利机构
  • php技术实现加载的过程
  • 固定资产减值准备可以税前扣除吗
  • 购买用友财务软件
  • tensorflow1 教程
  • 银行汇票属于银行存款吗
  • java+php
  • 公司注销前的资料怎么办
  • uni-app--》uni-app的生命周期讲解
  • 折旧与摊销会计分录
  • 可视化思考
  • 偿还应付账款会使得资产报酬率增加吗
  • 智能优化算法及其MATLAB实例
  • php递归函数详解
  • python del语法
  • 出口退税进项税额转出怎么申报
  • 个人取得的劳务报酬所得,如何缴纳个税
  • 销项负数发票需不需要增加库存
  • 招待费进项转出填表二哪里
  • 被冲红发票怎么处理
  • 支付国外佣金的税率多少
  • 营改增一般纳税人简易征收的范围
  • sqlserver存储过程加密
  • 房产租赁增值税率是5%还是9%
  • 待报解预算收入怎么做分录
  • 个人所得税要计入管理费用吗
  • 政府代建工程
  • 公司是生产企业现在要开出租赁的发票可以开吗
  • 制造企业费用会计
  • 多打的投资款怎么入账
  • 金蝶软件采购订单
  • 退资本金现金流量表走哪一项
  • 会计实务实操
  • 注册公司没交社保
  • 应收应付可以相互冲销吗
  • 品种法在产品和产成品怎么分配
  • 监控iphone软件
  • win10系统小娜不见了
  • 更新win8
  • win8关机立马自动重启
  • linux系统怎么切换到命令行
  • win10下载英雄联盟运行没反应
  • linux单个文件夹文件数量
  • windows10无法安装
  • win7怎么操作
  • 微信小程序实现留言功能
  • js的正则表达式
  • jsonarray fromobject
  • shader要学多久
  • 拥有一个属于自己的空间高中作文
  • nodejs实战
  • js打开浏览器新的tab页
  • javascript语言基础
  • python中csv怎么用
  • java script教程
  • JavaScript ParseFloat()方法
  • 银行和税务局的关系
  • 广东电子税务局财务报表在哪里查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设