Linux命令之expr详解

本文详细介绍了Bash shell中的表达式使用方法,包括字符串和整数运算、比较操作及逻辑运算等。通过具体实例展示了如何利用这些表达式进行变量长度获取、子字符串截取、字符位置查找等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,说明:
 将EXPRESSION的值打印到标准输出。下面的空行分隔增加的优先级组
2,语法:
 EXPR表达式
 表达式说明:
    2.1,用空格隔开每一项
    2.2,用\(反斜杠)放在壳特定字符前面
    2.3,对包含空格或者其他特定字符的字符串要用引号括起来
3,例
 3.1,expr length $string

   返回$字符串字符串的长度,其中串不允许为空,否则将报错,所以可以用来判断变量是否为空

  -bash-4.1 $ string="my name is kevinMa." 
  -bash-4.1 $ expr length "$string" 
  19 
  -bash-4.1 $ echo ${#string} 
  19 
  -bash-4.1 $ xxx =""
  bash -4.1 $ expr length $xxx 
  expr:语法错误
  -bash-4.1 $ if [$? - ne 0]; then echo'$xxx is null'; fi 
  $xxx is null
  -bash-4.1 $

 3.2,expr substr $string pos len

    从$ string字符串中取出从POS位置开始长度为LEN的子字符串。如果POS或LEN为非正整数时,将返回空字符串

  -bash-4.1 $ string="0123456789" 
  -bash-4.1 $ expr substr "$string" 2 3 ##以1开始标号,必须有长度参数
  123 
  -bash-4.1 $ echo ${string:2:3}       ##以0开始标号,可以没有长度参数echo ${string:2} 
  234 
  -bash-4.1 $

 3.3,expr index $string substring

    在字符串$ string中找出substring中的字符第一次出现的位置,若找不到则返回0

  -bash-4.1 $ string="my name is kevinMa." 
  - bash -4.1 $ expr index "$string" km ## m出现在第一个位置
  1 
  -bash-4.1 $ expr index "$string" K    ##没有K字符返回0 
  0 
  -bash-4.1 $ 

 3.4,expr match $string substring

   在$string字符串中匹配substring字符串,然后返回匹配到的substring字符串的长度,若找不到则返回0

  -bash-4.1 $ echo $string 
  my name is kevinMa。
  - bash -4.1 $ expr match "$string" my.* 
  19
  -bash-4.1 $ expr match "$string" my
  2 
  -bash-4.1 $ expr match "$string" is
  0 
  -bash-4.1 $  

 3.5,整数表达式(任意操作符两端都需要有空格)

  -bash-4.1 $ a = 3 
  -bash-4.1 $ b = 4 
  -bash-4.1 $ expr $b  -  $a 
  1 
  -bash-4.1 $ expr 5%$a 
  2 
  -bash-4.1 $ expr 5 / $a 
  1 
  -bash-4.1 $ expr 10 / $a 
  3 
  -bash-4.1 $ expr $ a \ * $b 
  12

 3.6,比较操作符

  -bash-4.1 $ string="abcd" 
  -bash-4.1 $ expr "$string" = "abc"
  0 
  -bash-4.1 $ expr "$string" = "abcd" 
  1 
  -bash-4.1 $ echo $a $b 
  3 4 
  -bash-4.1 $ expr $a \> $b 
  0 
  -bash-4.1 $ expr $a \ <$b 
  1 
  -bash-4.1 $ expr $a \ * 3 = 9 
  1

 3.7,逻辑连接符号“&”与“|”

  -bash-4.1 $ echo $a 
  3 
  -bash-4.1 $ echo $b 
  4 
  -bash-4.1 $ expr "$a" "|" "$b"
  3 
  -bash-4.1 $ expr "" "|" "$b" 
  4 
  -bash-4.1 $ expr "" "&" "$b" 
  0 
  -bash-4.1 $ expr "$a" "&" "$b" 
  3 
  -bash-4.1 $
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值