范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

LinuxShell基本运算符想玩转linux就请一直看下去

  我是IT悟道,点击右上方"关注 ",每天分享IT、科技、数码方面的干货。
  Shell 基本运算符
  Shell 和其他编程语言一样,支持多种运算符,包括: 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符
  原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
  expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
  例如,两个数相加( 注意使用的是反引号  `   而不是单引号  "  ): 实例
  #!/bin/bash
  val =` expr  2  + 2 `
  echo  "两数之和为 :  $val "
  运行实例 »
  执行脚本,输出结果如下所示: 两数之和为 : 4
  两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。 完整的表达式要被  ` `   包含,注意这个字符不是常用的单引号,在 Esc 键下边。 算术运算符
  下表列出了常用的算术运算符,假定变量 a 为 10,变量 b 为 20:
  运算符
  说明
  举例
  +
  加法
  `expr $a + $b` 结果为 30。
  -
  减法
  `expr $a - $b` 结果为 -10。
  *
  乘法
  `expr $a * $b` 结果为 200。
  /
  除法
  `expr $b / $a` 结果为 2。
  %
  取余
  `expr $b % $a` 结果为 0。
  =
  赋值
  a=$b 将把变量 b 的值赋给 a。
  ==
  相等。用于比较两个数字,相同则返回 true。
  [ $a == $b ] 返回 false。
  !=
  不相等。用于比较两个数字,不相同则返回 true。
  [ $a != $b ] 返回 true。
  注意: 条件表达式要放在方括号之间,并且要有空格,例如:  [$a==$b]  是错误的,必须写成  [ $a == $b ] 。 实例
  算术运算符实例如下: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  a =10
  b =20
  val =` expr  $a  + $b `
  echo  "a + b :  $val "
  val =` expr  $a  - $b `
  echo  "a - b :  $val "
  val =` expr  $a  *  $b `
  echo  "a * b :  $val "
  val =` expr  $b  /  $a `
  echo  "b / a :  $val "
  val =` expr  $b  %  $a `
  echo  "b % a :  $val "
  if  [  $a  == $b  ]
  then
  echo  "a 等于 b"
  fi
  if  [  $a  ! = $b  ]
  then
  echo  "a 不等于 b"
  fi
  执行脚本,输出结果如下所示: a + b : 30 a - b : -10 a * b : 200 b / a : 2 b % a : 0 a 不等于 b注意:
  乘号(*)前边必须加反斜杠()才能实现乘法运算;if...then...fi 是条件语句,后续将会讲解。在 MAC 中 shell 的 expr 语法是:  $((表达式))  ,此处表达式中的 "*" 不需要转义符号 "" 。  关系运算符
  关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
  下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
  运算符
  说明
  举例
  -eq
  检测两个数是否相等,相等返回 true。
  [ $a -eq $b ] 返回 false。
  -ne
  检测两个数是否不相等,不相等返回 true。
  [ $a -ne $b ] 返回 true。
  -gt
  检测左边的数是否大于右边的,如果是,则返回 true。
  [ $a -gt $b ] 返回 false。
  -lt
  检测左边的数是否小于右边的,如果是,则返回 true。
  [ $a -lt $b ] 返回 true。
  -ge
  检测左边的数是否大于等于右边的,如果是,则返回 true。
  [ $a -ge $b ] 返回 false。
  -le
  检测左边的数是否小于等于右边的,如果是,则返回 true。
  [ $a -le $b ] 返回 true。  实例
  关系运算符实例如下: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  a =10
  b =20
  if  [  $a  -eq  $b  ]
  then
  echo  " $a  -eq $b  : a 等于 b"
  else
  echo  " $a  -eq $b : a 不等于 b"
  fi
  if  [  $a  -ne  $b  ]
  then
  echo  " $a  -ne $b : a 不等于 b"
  else
  echo  " $a  -ne $b  : a 等于 b"
  fi
  if  [  $a  -gt  $b  ]
  then
  echo  " $a  -gt $b : a 大于 b"
  else
  echo  " $a  -gt $b : a 不大于 b"
  fi
  if  [  $a  -lt  $b  ]
  then
  echo  " $a  -lt $b : a 小于 b"
  else
  echo  " $a  -lt $b : a 不小于 b"
  fi
  if  [  $a  -ge  $b  ]
  then
  echo  " $a  -ge $b : a 大于或等于 b"
  else
  echo  " $a  -ge $b : a 小于 b"
  fi
  if  [  $a  -le  $b  ]
  then
  echo  " $a  -le $b : a 小于或等于 b"
  else
  echo  " $a  -le $b : a 大于 b"
  fi
  执行脚本,输出结果如下所示: 10 -eq 20: a 不等于 b 10 -ne 20: a 不等于 b 10 -gt 20: a 不大于 b 10 -lt 20: a 小于 b 10 -ge 20: a 小于 b 10 -le 20: a 小于或等于 b布尔运算符
  下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:
  运算符
  说明
  举例
  !
  非运算,表达式为 true 则返回 false,否则返回 true。
  [ ! false ] 返回 true。
  -o
  或运算,有一个表达式为 true 则返回 true。
  [ $a -lt 20 -o $b -gt 100 ] 返回 true。
  -a
  与运算,两个表达式都为 true 才返回 true。
  [ $a -lt 20 -a $b -gt 100 ] 返回 false。 实例
  布尔运算符实例如下: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  a =10
  b =20
  if  [  $a  ! = $b  ]
  then
  echo  " $a  != $b  : a 不等于 b"
  else
  echo  " $a  == $b : a 等于 b"
  fi
  if  [  $a  -lt  100  -a  $b  -gt  15  ]
  then
  echo  " $a  小于 100 且 $b  大于 15 : 返回 true"
  else
  echo  " $a  小于 100 且 $b  大于 15 : 返回 false"
  fi
  if  [  $a  -lt  100  -o  $b  -gt  100  ]
  then
  echo  " $a  小于 100 或 $b  大于 100 : 返回 true"
  else
  echo  " $a  小于 100 或 $b  大于 100 : 返回 false"
  fi
  if  [  $a  -lt  5  -o  $b  -gt  100  ]
  then
  echo  " $a  小于 5 或 $b  大于 100 : 返回 true"
  else
  echo  " $a  小于 5 或 $b  大于 100 : 返回 false"
  fi
  执行脚本,输出结果如下所示: 10 != 20 : a 不等于 b 10 小于 100 且 20 大于 15 : 返回 true 10 小于 100 或 20 大于 100 : 返回 true 10 小于 5 或 20 大于 100 : 返回 false逻辑运算符
  以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:
  运算符
  说明
  举例
  &&
  逻辑的 AND
  [[ $a -lt 100 && $b -gt 100 ]] 返回 false
  ||
  逻辑的 OR
  [[ $a -lt 100 || $b -gt 100 ]] 返回 true  实例
  逻辑运算符实例如下: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  a =10
  b =20
  if  [[  $a  -lt  100  &&  $b  -gt  100  ]]
  then
  echo  "返回 true"
  else
  echo  "返回 false"
  fi
  if  [[  $a  -lt  100  ||  $b  -gt  100  ]]
  then
  echo  "返回 true"
  else
  echo  "返回 false"
  fi
  执行脚本,输出结果如下所示: 返回 false 返回 true字符串运算符
  下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":
  运算符
  说明
  举例
  =
  检测两个字符串是否相等,相等返回 true。
  [ $a = $b ] 返回 false。
  !=
  检测两个字符串是否不相等,不相等返回 true。
  [ $a != $b ] 返回 true。
  -z
  检测字符串长度是否为0,为0返回 true。
  [ -z $a ] 返回 false。
  -n
  检测字符串长度是否不为 0,不为 0 返回 true。
  [ -n "$a" ] 返回 true。
  $
  检测字符串是否为空,不为空返回 true。
  [ $a ] 返回 true。 实例
  字符串运算符实例如下: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  a ="abc"
  b ="efg"
  if  [  $a  = $b  ]
  then
  echo  " $a  = $b  : a 等于 b"
  else
  echo  " $a  = $b : a 不等于 b"
  fi
  if  [  $a  ! = $b  ]
  then
  echo  " $a  != $b  : a 不等于 b"
  else
  echo  " $a  != $b : a 等于 b"
  fi
  if  [  -z  $a  ]
  then
  echo  "-z  $a  : 字符串长度为 0"
  else
  echo  "-z  $a  : 字符串长度不为 0"
  fi
  if  [  -n  " $a " ]
  then
  echo  "-n  $a  : 字符串长度不为 0"
  else
  echo  "-n  $a  : 字符串长度为 0"
  fi
  if  [  $a  ]
  then
  echo  " $a  : 字符串不为空"
  else
  echo  " $a  : 字符串为空"
  fi
  执行脚本,输出结果如下所示: abc = efg: a 不等于 b abc != efg : a 不等于 b -z abc : 字符串长度不为 0 -n abc : 字符串长度不为 0 abc : 字符串不为空文件测试运算符
  文件测试运算符用于检测 Unix 文件的各种属性。
  属性检测描述如下:
  操作符
  说明
  举例
  -b file
  检测文件是否是块设备文件,如果是,则返回 true。
  [ -b $file ] 返回 false。
  -c file
  检测文件是否是字符设备文件,如果是,则返回 true。
  [ -c $file ] 返回 false。
  -d file
  检测文件是否是目录,如果是,则返回 true。
  [ -d $file ] 返回 false。
  -f file
  检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。
  [ -f $file ] 返回 true。
  -g file
  检测文件是否设置了 SGID 位,如果是,则返回 true。
  [ -g $file ] 返回 false。
  -k file
  检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。
  [ -k $file ] 返回 false。
  -p file
  检测文件是否是有名管道,如果是,则返回 true。
  [ -p $file ] 返回 false。
  -u file
  检测文件是否设置了 SUID 位,如果是,则返回 true。
  [ -u $file ] 返回 false。
  -r file
  检测文件是否可读,如果是,则返回 true。
  [ -r $file ] 返回 true。
  -w file
  检测文件是否可写,如果是,则返回 true。
  [ -w $file ] 返回 true。
  -x file
  检测文件是否可执行,如果是,则返回 true。
  [ -x $file ] 返回 true。
  -s file
  检测文件是否为空(文件大小是否大于0),不为空返回 true。
  [ -s $file ] 返回 true。
  -e file
  检测文件(包括目录)是否存在,如果是,则返回 true。
  [ -e $file ] 返回 true。
  其他检查符: -S : 判断某文件是否 socket。 -L : 检测文件是否存在并且是一个符号链接。 实例
  变量 file 表示文件 /var/www/runoob/test.sh ,它的大小为 100 字节,具有 rwx 权限。下面的代码,将检测该文件的各种属性: 实例
  #!/bin/bash
  # author:菜鸟教程
  # url:www.runoob.com
  file ="/var/www/runoob/test.sh"
  if  [  -r  $file  ]
  then
  echo  "文件可读"
  else
  echo  "文件不可读"
  fi
  if  [  -w  $file  ]
  then
  echo  "文件可写"
  else
  echo  "文件不可写"
  fi
  if  [  -x  $file  ]
  then
  echo  "文件可执行"
  else
  echo  "文件不可执行"
  fi
  if  [  -f  $file  ]
  then
  echo  "文件为普通文件"
  else
  echo  "文件为特殊文件"
  fi
  if  [  -d  $file  ]
  then
  echo  "文件是个目录"
  else
  echo  "文件不是个目录"
  fi
  if  [  -s  $file  ]
  then
  echo  "文件不为空"
  else
  echo  "文件为空"
  fi
  if  [  -e  $file  ]
  then
  echo  "文件存在"
  else
  echo  "文件不存在"
  fi
  执行脚本,输出结果如下所示: 文件可读 文件可写 文件可执行 文件为普通文件 文件不是个目录 文件不为空 文件存在

刷金币有通用的方法?别搞笑了,本人亲测和下载广告没半毛钱关系我用3个账号,三台手机同时开始刷金币,一个新用户,两个老用户,都在下载广告,发现和下载没有太大的关系,和手机有很大的关系,同一个老账号在oppo上看一次广告是100多金币,在华为上恒腾网络的流媒体野心对标奈飞,超越奈飞?付费长视频领域的战争正在打响,南瓜电影的规模还在继续扩大中,背靠恒大和腾讯,恒腾网络的野心到底有多大?本文由无冕财经(wumiancaijing)原创首发作者方斯嘉编辑陈涧设计岚昇膳食营养补充剂市场格局重塑汤臣倍健市值破600亿成全球行业第一在市值规模排名纵横变化的背后,隐藏的往往是行业竞争的兴衰成败与格局重塑。汤臣倍健600亿市值的突破,急剧拉升了整个行业的市值水平,VDS行业原先的天花板被彻底打破。本文由无冕财经(直播电商2。0时代,品牌如何在快手构建全新增长曲线?一个账号一笔预算一个投放计划,就能实现卖货增长,快手上的商家到底掌握了怎样的财富密码?本文由无冕财经(wumiancaijing)发布编辑陈涧设计岚昇编辑助理朱智琪品牌自播步入2。反垄断砸掉护城河,腾讯音乐慌了?腾讯音乐曾依靠独家版权成为行业龙头,但斥巨资投入版权后,付费订阅率还不到一成,腾讯音乐靠什么挣钱?本文由无冕财经(wumiancaijing)原创首发作者施燕芬编辑陈涧设计岚昇实习硬核观察444自JDK17开始OracleJDK又可以免费商用了自JDK17开始OracleJDK又可以免费商用了Oracle最新发布的NFTC许可中撤回了2018年制定的要对OracleJDK收取商用费用的决定,并且也将继续提供OracleOVSCode还是Atom?你应该选择哪个如今,找到一个好的开源代码编辑器并不难,随便选择一个就可以了。微软的VSCode和GitHub的Atom是两个最流行的功能丰富的类似于IDE的代码编辑器,都拥有庞大的用户群和粉丝。Fedora35登场带来了GNOME41和一个新的KDE变体Fedora35发布了,带来了GNOME41,并有一个专注于可靠性的基于KDE的新变体。在测试版发布几周后,Fedora35稳定版终于来了!这个版本带来了一些关键性的改进,我们将在硬核观察445在元宇宙中做PPT和Excel在元宇宙中做PPT和Excel目前最热的流行词某过于元宇宙了。除了连名字都改成Meta的Facebook之外,微软也在积极拥抱元宇宙,它正在调整其标志性的软件产品,以创建一个更加企如何在UbuntuLinux中正确地设置JAVAHOME变量如果你在Ubuntu上运行Java程序,使用EclipseMaven或Netbeans等等,你将需要将JAVAHOME环境变量设置为正确的路径。否则,你的系统将会向你控诉javahFerdiFranz和Rambox的自由开源替代品Ferdi是一个很有前途的开源应用,是Franz和Rambox的替代品,免费提供了更多功能。让我们来探索一下它的更多信息。有一个可以帮助你管理多个服务的应用会方便,这样你就不用什么
华为GTRunner一款真正为跑者设计的运动手表华为GTrunner发布有一小段时间了,今天就来分享一下作为一名跑者使用它的与众不同。外观我们来看看外包装都有些什么。先来看外观。包装盒GTRunner快速入门指导书附赠了一块表带三星GalaxyZFold4的SPen已经进入批量生产据外媒报道,三星正在研发GalaxyZFold4可折叠手机。与去年一样,该公司可能会在今年8月推出这款产品。而有传言称,三星今年推出的可折叠手机将配备SPen触控笔。新的消息透露,iPhone14模具曝光Lightning传速提升,全系迎来涨价按照惯例,下一代iPhone产品将在今年的9月份推出,参考苹果手机的命名习惯,许多业内人士认为下一代iPhone将被命名为iPhone14。目前距离9月份还有5个月左右的时间,消息又更新了!飞思CaptureOne22商业摄影的秘密武器,赶紧安排上商业摄影是真的好难啊!!!对于商业摄影师来说既要追求出片效率,同时也要兼顾不同客户的风格喜好。这时你就需要CaptureOne22这款神器,据说商业摄影师人手一份,靠它解决你全年9经落实小米MIUI13稳定版第三批持续更新火热出炉,名单覆盖16款机勇无止境8848科技前沿资质据4月19日最新消息,自小米去年底发布了MIUI13发布稳定版计划,此前已公布了MIUI13第一批和第二批稳定版更新的机型。近日,小米官方公布了MIUI省财政6。3亿元支持企业科技创新本报讯(记者曾鸣)4月18日,记者从省财政厅获悉,为积极引导市县培育高新技术企业,着力提升我省科技创新能力,近日,省财政共安排2022年高新技术企业奖补资金2。3亿元,专项用于引导在线观点微信朋友圈十年,6亿人只看不发转自中关村在线作者肖瘦人微信朋友圈十周年之际,怎么在朋友圈养农场宠物的话题成了热门,超百万的话题热度背后,一个黑色幽默愈发无法被忽视朋友圈用最火的方式,证明着它的存在感之低。自从朋2022款合创Z03上市元PLUS迎来最强对手随着新能源汽车技术的不断突破以及基础设施的逐步完善,国内新能源汽车市场蓬勃发展,各大厂家纷纷加大筹码推出更多优秀的产品。15万左右的紧凑型SUV因为价格合适功能丰富的原因成为这个细起步30万!比亚迪超豪华MPV曝光,车长超5米,比威尔法还大当下新能源汽车的兴起,给很多汽车品牌带来了机会,也为消费者提供了更多的品类,其中比亚迪作为当下国内市场具有代表性的新能源汽车品牌,开始不再以燃油汽车为主,当下比亚迪除了重点发展家用将汽车级车机系统用于两轮电动车,哈啰VVSMART摘得全球顶级设计大奖近日,世界著名设计奖iF获奖作品名单正式公布,哈啰电动车独创的VVSMART超连网车机系统从众多参赛作品中脱颖而出,摘得2022德国iF设计奖。德国iF奖创立于1953年,是世界最红米K40S迎来劲敌,骁龙870144Hz潜望长焦,友商更有性价比由于国内市场的特殊性,手机领域的竞争十分激烈,各大厂商都有自己的真香机,或者是推出子品牌来比拼,那么众所周知红米就是小米的小老弟,虽然如今算是独立运营,但两者关系依旧相当密切,成为