位置: 编程技术 - 正文

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)

  • 小规模不动产租赁税率5%
  • acca b/f
  • 收到代发工资的信息
  • 行政单位利息收入是非税收入吗
  • 固定资产改变用途进项转出
  • 销售部预借差旅费什么凭证
  • 结转无形资产账面价值
  • 持有的汇票到期后怎么办
  • 扣服装费的收入如何交增值税?
  • 工会没有税号怎么开普票
  • 防伪开票系统税票如何抵扣
  • 劳务费个人所得税税率
  • 股东借款利息计入利润表哪个科目
  • 费用化支出含义
  • 穿越火线下载安装
  • 王者荣耀如何更改战区
  • 即征即退的增值税需要缴纳企业所得税吗
  • ThinkPHP中SHOW_RUN_TIME不能正常显示运行时间的解决方法 原创
  • 搜索框无法搜索内容
  • 股票的交易费用多少
  • 向房东要押金的不犯法的妙招
  • php require include
  • h5跳转h5
  • php添加扩展
  • 购买材料结转成本的会计分录
  • 结转损益类收入的分录
  • html表白代码动态
  • 租赁费用增值税率
  • Http协议之Content-Type理解
  • vue route 参数
  • 股东撤资怎么做账
  • 刚开始考会计证有用吗
  • c语言中sizeof是啥意思
  • mongodb bi
  • sql优化常用的15种方法
  • 季中转一般纳税人申报了小规模后无法勾选认证
  • 出口免抵额需要加交付地方附加税吗
  • 个人劳务报酬所得税税率表
  • 新成立公司如何报税
  • 车船税去哪里交
  • 借管理费用贷应交税费个人所得税
  • 工程项目买保险需要哪些资料
  • 财务费用多计怎么做账
  • 税收返还要交税费吗
  • 小规模企业应交税费二级科目
  • 收到工会经费怎么指定现金流入
  • 营业外收入在汇算清缴里填哪张表
  • 小规模纳税人可以抵税吗
  • 招标场地费由谁支付
  • 五证合一办理步骤
  • 忘记MySQL的root密码该怎么办
  • linux系统常用命令怎么记住
  • 方正笔记本
  • win7屏幕太亮了怎么调电脑
  • win8自带的视频播放器打不开
  • tr linux 命令
  • windows怎么安装
  • xp系统怎么没有无线网络连接
  • 升级win10免费吗
  • iptables centos
  • 深入理解
  • linux中文件权限读写执行的三种标志符号依次是
  • python打开命令行
  • html文字美化
  • 关于jQuery中的DOM操作,下列哪种方法用来复制元素?
  • node解决跨域
  • python访问地址
  • jquery trigger实现联动的方法
  • unity-
  • 咪咕游戏包括什么
  • js判断输入框字符长度
  • js创建对象的方法有哪些
  • jquery 插件写法
  • 如何在电子税务局变更财务负责人
  • 填了专项附加扣除但没有进行综合年度汇算
  • 山东潍坊昌邑房产网
  • 北京国税局开票流程
  • 打税务局电话
  • 江西鹰潭潭花酒60度
  • 千兆交换机涨价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设