位置: 编程技术 - 正文

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)

  • 一般纳税人附加税优惠政策2023
  • 所得税汇算清缴调整项目
  • 商品流通企业都交什么税
  • 火车票丢了怎么补打报销凭证
  • 失业稳岗补贴怎么记账
  • 新准则金融资产科目名称
  • 餐饮增值税发票抵扣
  • 单位发放中秋月饼价值有规定吗
  • 预售收入是否可以退税
  • 销售收入分成率计算公式
  • 社保计入管理费用还是成本
  • 技术服务行业分析
  • 已审核已过账已经生成凭证还能修改吗?
  • 契税与印花税能抵扣吗
  • 小规模收专用发票后成为一般纳税人吗
  • 建筑总包会计分录
  • 案例分析关于团员青年的思想困惑疏导和成长问题释疑
  • 纳税申报方式怎么修改
  • 税务改革方向
  • 研发企业退税
  • 资金印花税
  • 已认证发票退货怎么办
  • 完工百分比法确认收入应注意的问题
  • windows 10输入法
  • 怎么让别人无法访问我的qq空间
  • 上月发生的费用本月报销记账
  • php 语法
  • 房地产开发企业分为几个等级
  • 公司交会费有什么用
  • win11如何将开始菜单里的软件移到桌面
  • linux chcon命令
  • 携税宝的作用
  • 分红财务做账
  • 最小的触屏手机有哪些
  • 商业汇票抵付前欠货款的分录
  • php何去何从
  • 股东以固定资产入股会计处理
  • 债务重组收入要交税吗
  • 股权融资服务协议
  • 工业企业计入制造费用的工资还需要交工会经费吗
  • 预提费用计提的分录
  • 人工智能机器人保姆什么时候实现
  • 代扣代缴的企业所得税计入成本吗
  • 连带责任担保会被拘留吗
  • 可转债公允价值变动计入
  • 帐没做完怎么报增值税
  • 办理车辆购置税流程
  • 用简易计税办法开发票
  • 公户直接转给私人账户违法么
  • 企业没收入也要交税吗
  • 一次性开票分期收入账务处理
  • 定额转查账征收
  • 出口运保费是什么费用
  • 企业发放职工薪酬的账务处理
  • 员工的车是否可以抵税
  • 中小企业两账合一怎么办
  • 税控盘网上抄报税的步骤
  • mysqldump导出csv文件
  • centos安装NVIDIA驱动
  • xp系统怎么取消开机登录界面
  • win7原版系统安装与激活
  • mac上itunes
  • win7记事本功能
  • win8系统中向日葵软件造成的屏幕亮度无法调节怎么办?
  • win7无线wifi
  • cocos2dx 3.17
  • opengl纹理贴图正方体六个面
  • 景深图片的3d显示器
  • 贴吧热门评论
  • 各种摄像机的介绍
  • java多线程最佳实践
  • bat批处理删除
  • jquery开发
  • unity开发手游
  • python,字符串
  • python字符串的用法
  • js 类继承
  • 国家税务局级别排名
  • 定期定额纳税申报表应税项应填哪个数
  • 城建税教育费附加怎么做分录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设