位置: 编程技术 - 正文

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)

  • 财会英语汇总:税收术语?
  • 个体户每月开票超3万
  • 为什么社保明细少一个月
  • 通过公账直接转账可以吗
  • 企业不开票的收入会怎么样处理
  • 非居民企业出租境内不动产
  • 代扣业务员佣金怎么做账
  • 往来款 分录
  • 开具增值税专用发票证明
  • 没建账的个体户如何交个人所得税?
  • 个人独资企业所得税
  • 委任方名称代表的是什么意思?
  • 税收分类编码选错了会罚款么
  • 纳税服务一体化综合监督工作情况报告
  • 企业生产总值怎么算出来的
  • 应付职工薪酬会计科目怎么做
  • 事业单位研发支出资本化
  • 货款打多了对方不愿意退款
  • 个人私家车买卖平台
  • 增值税申报表中期初未缴税额指什么
  • 累计折旧的计提和处理的分录
  • 电子商务出来干嘛
  • 应付职工薪酬年底怎么结转
  • 桃胶多少钱一斤正常
  • 穿越火线真人版宣传片
  • window11安装失败
  • 已认证未付款可以退款吗
  • 向国外个人支付的佣金是否缴纳个人所得税
  • php中md5函数
  • 曼哈顿公园大道432号
  • 数据库操作实例
  • 强制缓存与协商缓存的区别
  • thinkphp3.0
  • 企业接受投资会导致所有者权益增加吗
  • 织梦数据库在哪
  • 所得税需要结转么
  • 未达起征点的增值税怎么账务处理
  • python如何点击网页按钮
  • 帝国cms首页怎么打开
  • 补开上年发票的税务处理要怎么做?
  • phpcms怎么用
  • php的do while语句
  • 不开增值税发票的销售收入报税的操作流程是?
  • 土地出让金相关政策
  • sqlserver数据库性能情况
  • 其他应收款账户管理应遵循
  • 资产减值损失是什么意思
  • 增值税期末留抵退税原因采集确认单
  • 车辆购置税滞纳金上限
  • 增资如何做账务处理
  • 新公司核税需要什么材料
  • 建筑安装业,指从事____的企业
  • 共同类科目性质
  • 国有资产如何保值
  • 费用利润率计算公式是怎样的?
  • 快捷酒店财务一般几个人
  • 企业给予第三方补贴
  • 香港的收据可以作为报销凭证吗
  • 只有进项发票没有销售发票这种怎么做账
  • 出纳记帐凭证
  • 小企业会计准则2023电子版
  • sql server修改数据表
  • windows10取消fn功能键
  • centos还原
  • Windows Server 2008搭建终端服务器
  • vmware虚拟机怎么改用户名
  • initcause
  • linux磁盘配额实验报告
  • windows8 enterprise
  • win10怎么禁用device/credential guard
  • unity best fit
  • 置顶在哪里
  • 脚本被删除
  • 安卓拍照闪退
  • Android通知栏点击打开安装
  • js newyork
  • jquery动态添加div
  • android简单app实例
  • 小规模纳税人开专票
  • 国家税务总局上海税务局(个人)
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设