欢迎来到第壹文秘! | 帮助中心 分享价值,成长自我!
第壹文秘
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 第壹文秘 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    Linux shell 逻辑运算符 逻辑表达式详解.docx

    • 资源ID:1033492       资源大小:28.95KB        全文页数:12页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Linux shell 逻辑运算符 逻辑表达式详解.docx

    shell的逻辑运算符涉及有以下几种类型,因此只要适当选择,可以解决我们很多复杂的判断,达到事半功倍效果。一、逻辑运算符1、逻辑卷标表示意思1)关于档案与目录的侦测逻辑卷标f常用!侦测档案是否存在eg:ifffilenamed常用!侦测目录是否存在b侦测是否为一个block档案c侦测是否为一个character档案S侦测是否为一个socket标签档案1.侦测是否为一个ITsymbolicIink的档案e侦测某个东西是否存在!2)关于程序的逻辑卷标G侦测是否由GID所执行的程序所拥有0侦测是否由UID所执行的程序所拥有P侦测是否为程序间传送信息的namepipe或是FIFo(老实说,这个不太懂!)3)关于档案的属性侦测r侦测是否为可读的属性W侦测是否为可以写入的属性X侦测是否为可执行的属性S侦测是否为非空白档案U侦测是否具有FSUlDj的属性g侦测是否具有FSGlDj的属性k侦测是否具有stickybit的属性4)两个档案之间的判断与比较;Wtestfilelntfile21nt第一个档案比第二个档案新ot第一个档案比第二个档案旧ef第一个档案与第二个档案为同一个档案(link之类的档案)5)逻辑的和(and)J或(Or)J&&逻辑的AND的意思Il逻辑的OR的意思2、运算符号代表意义二等于应用于:整型或字符串比较如果在U中,只能是字符串!二不等于应用于:整型或字符串比较如果在口中,只能是字符串V小于应用于:整型比较在中,不能使用表示字符串大于应用于:整型比较在U中,不能使用表示字符串eq等于应用于:整型比较ne不等于应用于:整型比较It小于应用于:整型比较gt大于应用于:整型比较Ie小于或等于应用于:整型比较ge大于或等于应用于:整型比较a双方都成立(and)逻辑表达式-a逻辑表达式0单方成立(or)逻辑表达式-0逻辑表达式Z空字符串n非空字符串二、逻辑表达式1、test命令使用方法:testEXPRESSION如:lrootlocalhost-l#test1=1&&echo'ok'okIroOtloCaIhoSt#testd/etc/&&echo'ok'oklrootlocalhost-#test1eq1&&echo'ok'oklrootlocalhost-#iftest1=1henecho,okfiok注意:所有字符与逻辑运算符直接用“空格”分开,不能连到一起。2、精简表达式U表达式lrootlocalhost|#l1eq1&&echo'ok'okrootk>CaIhOSV1&&echo'ok'bash:2:Nosuchfileordirectoryrootlocalhost#2<1<fe<feecho,ok,lrootlocalhost-#l2gt1a31t4&&echo*ok'okrootlocalhost-#2gtl&&31t4&&echo'ok'bash:missing''注意:在口表达式中,常见的>,<需要加转义字符,表示字符串大小比较,以acill码位邕作为比较。不直接支持<>运算符,还有逻辑运算符|&&它需要用aandj-oor表示表达式rootlocalhost-#1eq1&&echo'ok'okrootlocalhost-$2<3(fe(feecho,ok,okIrOotloCaIhOSt$U2v3&&4>5&&echo'ok'ok注意:山运算符只是口运算符的扩充。能够支持v,>符号运算不需要转义符,它还是以字符串比较大小。里面支持逻辑运算符:|&&3、性能比较bash的条件表达式中有三个几乎等效的符号和命令:test,和川。通常,大家习惯用if;then这样的形式。而山的出现,根据ABS所说,是为了兼容><之类的运算符。以下是比较它们性能,发现是最快的。Stime(formin1.1(XXXX);dotestd.;done;)realm.658suserm.558ssys0m0.100sStime(formin1.1OOOOO;dod.;done;)rea10m0.609suserm.524ssys0m0.085sStime(fo11nin1.100000;dod.;done;)realm.311suserm.275ssys0m0.036s不考虑对低版本bash和对Sh的兼容的情况下,用川是兼容性强,而且性能比较快,在做条件运算时候,可以使用该运算符。附1.inuxShell脚本总结及语法速查1.HelloWorld1.1. 基本结构创建helloWorld.sh文件,写入如下内容:#!/bin/bashechonhelloworldM其中#!告诉系统其后路径所指定的程序是解释此脚本文件的Shell程序,常见的Shell程序有以下几类(可通过命令cat/etc/shells查看):BourneShell(usrbinsh或/bin/Sh)BourneAgainShell(binbash)CShell(usrbincsh)KShell(usrbinksh)ShellforRoot(sbinsh)Others其中Bash在日常工作中被广泛使用,同时也是大多数1.inux系统默认的Shello执行该Sh脚本#增加可执行权限÷chmodu+xhelloWorld.sh#运行脚本-÷.helloWorld.sh或-÷shhellowWorld.sh1.2. 注释单行注释以#开头的行是注释多行注释方式一:用一对括起来,定义成一个函数,没有地方调用即达到注释的效果。方式二::«EOF注释内容注释内容.注释内容EOF2.基本语法2.1. 变量变量定义如下示例:VARl="whoru,VAR2=100var3=datawwwvar4-name=11root"变量名建议大写;有效字符仅能包含字母、数字、下划线,首个字符不能以数字开头;=两边不能有空格;不能使用标点符号;不能使用bash里的关键字(可用help命令查看保留关键字)。访问变量$VARl或$(Var1),其中,加花括号是为了帮助解释器识别变量的边界。设置变量只读readonlyVARl删除变量(不适用于只读变量!)UnsetVARl22字符串值用双引号”或单引号”表示双引号里可以有变量;双引号里可以出现转义字符;单引号里的任何字符都会原样输出;单引号字符串中的变量是无效的;单引号单限制:双引号的优点:其它# 字符串拼接name=',xiaoli"var2="hello,H$name#出hello,xiaoli# 获取字符串长度string="abcd"echo$#String#输出4# 提取子字符串msg=11zhangsanisagoodman"echo$msg:l:4#输出hang2.3. 数组bash支持一维数组(不支持多维数组),并且没有限定数组的大小。数组元素的下标由O开始,获取数组元素要用到下标。定义:array1=(valuevalueIValUe2value3)或array20=value0array2l=valuelarray22=value2读取#指定下标的元素echo$array2l2);/输出value2#获取数组所有元素echo$array2*;/输出ValueOvalue1value2echo$array2J)获取数组元素个数0(±0$#%丫2;输出3echo$#array2l*J);取得数组中指定下标元素的字符长度echo$(#array22;2.4. 传递参薮在执行SheII脚本时,可以向脚本传递参数,脚本内获取参数的格式为$n,这里的n指传递给脚本的第n个参数。如下脚本文件demo.sh:#!/bin/bashecho”执行的文件名:$0”;echo”第一个参数为:$1”;echo”第二个参数为:$2”;echo”第三个参数为:$3”;执行该文件,并传递参数,如下:-÷.demo3.shparam1param2param3执行的文件玄:.demo3.sh第一个参数为:param1第二个参数为:param2第三个参数为:param3其中,$0是一个特殊变量,代表当前脚本文件名,还有几个类似的变量如下:变量说明$#传递给脚本的参数个数。以一个单字符串的形式显示所有向脚本传递的'参数,如"$l$2.$n"与$*相同,但是使用引号把每个参数包裹起来,箱最后一个执行的命令的退出状态:0正常;1或卜其它任何值,表示有错误$脚本运行的当前进程ID号$!最后一个后台命令的进程号。3 .运算符3.1. 算数运算符原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如awk和expr,其中expr最常用。假定有两个变量:a=10b=20运算符说明举例+加法'expr$a+$b、结果为30。减法'expr$a$b'结果为IO0*乘法'expr$a*$b'结果为200o/除法'expr$b/$a'结果为2。取余'expr$b$a'结果为Oo赋值a=$b将把变量b的值赋给a。=用于比较两个数字是否相同$a=$b返回falseoI=用于比较两个数字是否不相同$a!=$b返回true。注意:表达式和运算符之间要有空格,如2+2是错误的,必须写成2+2;完整的表达式要被反引号、包裹起来;3.2. 关系运算符关系运算符只支持数字,不支持字符串,除非字符串的值是数字。假定有两个变量:a=10b=20运算符说明举例eqnegtIt检测两个数是否相等检测两个数是否不相等检测左边的数是否大于右边的检测左边的数是否小于右边的$aeq$b返回falseo$ane$b返回true。返回true。geIe检测左边的数是否大于等于右边的检测左边的数是否小于等于右边的$age$b返回falseo3.3. 布尔操作符假定有两个变量:a=10b=20举例运算符说明!false返回true。非运算,表达式为true则返回false,否则返回trueo或运算,有一个表达式为$alt20o$bgtl00返回true则返回trueotrue。与运算,两个表达式都为$alt20a$bgtl00返回true才返回true。false©3.4.逻辑运算符假定有两个变量:a=10b=20运算符说明举例逻辑&&的altl(M)&&A

    注意事项

    本文(Linux shell 逻辑运算符 逻辑表达式详解.docx)为本站会员(p**)主动上传,第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知第壹文秘(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 1wenmi网站版权所有

    经营许可证编号:宁ICP备2022001189号-1

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。第壹文秘仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第壹文秘网,我们立即给予删除!

    收起
    展开