Linux中expr命令
来源:互联网 发布:网络互联设备有哪些 编辑:程序博客网 时间:2024/05/16 01:11
expr 命令
用途
求表达式变量的值。
语法
expr Expression
描述
expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出。
您必须对 Expression 参数应用以下规则:
- 用空格隔开每个项。
- 用 / (反斜杠) 放在 shell 特定的字符前面。
- 对包含空格和其他特殊字符的字符串要用引号括起来。
整数前面可以放一个一元连字符。在内部,整数被当作 32 位,双互补数。
注: expr 命令返回一个 0 来指示一个零值,而不是空字符串。
以下项描述了 Expression 参数的运算符和关键字。需要转义的字符由一个 / (反斜杠) 放在前面。这些项按照优先权递增的顺序列出,具有相等的优先权的运算符分组在 {} (大括号) 中:
Expression1 /| Expression2返回 Expression1 如果它不是空值或者 0 值的话,否则返回Expression2 。Expression1 /& Expression2返回 Expression1 如果两个表达式都不是空值或者 0 值,否则返回一个 0 值。Expression1 { =, />, />=, /<, /<=, != } Expression2如果两个表达式都是整数,返回整数比较的结果;否则它返回的是字符串比较的结果。Expression1 {+, - } Expression2整数值变量的加或者减。Expression1 { (.*/)"`只要 $FLAG shell 变量前面有连字符,就会除去连字符。冒号运算符给出 FLAG 变量的一部分,该变量由在 /(
如果 $FLAG 变量设置成 -(连字符),那么该命令会显示一个语法错误消息。这是因为 shell 会将 $FLAG 变量的值替换,在运行expr 命令之前。expr 命令不知道连字符是一个变量的值。它只能理解:
- : -*/(.*/)
并且它会将第一个连字符解释成减号运算符。要消除这种问题,请使用:
FLAG=`expr "x$FLAG" : "x-*/(.*/)"`
- 要想使用 expr 命令在 if 语句中,请输入:
if expr "$ANSWER" : "[yY]" >/dev/null那么返回 ANSWER 以 "y" 或 "Y" 开始fi
如果 $ANSWER 变量以 y 或 Y 开始的话,if 语句的 then 部分会执行。如果匹配成功表达式的结果为 1,并且 expr 命令会返回一个为 0 的出口值,此出口值被 if 语句识别成逻辑值 True。如果匹配失败,结果为 0,出口值为 1。
将 expr 命令的标准输出重新定向到 /dev/null 特殊文件,而废弃该表达式的结果。如果您没有对它重新定向,结果就会写到标准输出中,通常是您的工作站显示器。
- 考虑以下表达式:
expr "$STR" = "="
如果 $STR 变量有值为 = (等号),那么在 shell 处理完此命令之后,expr 命令会看到表达式:
= = =
expr 命令将此解释成在一行中的三个等号运算符,并显示一个语法出错消息。一旦 shell 变量的值与 expr 运算符中的一个相同,这种情况就会发生。避免这种问题的方法是,将该表达式写成:
expr "x$STR" = "x="
- 要想返回 $SHELL 环境变量 /usr/bin/ksh 的长度,请输入:
expr length $SHELL
显示以下内容:
12
- 要想返回 "de" 字符串中的任何一个字符在 "abcdef" 中出现的第一个位置,请输入:
expr index abcdef de
显示以下内容:
4
- 要想返回 "fd" 字符串的任何字符在 "abcdef" 中出现的第一个位置,请输入:
expr index abcdef fd
显示以下内容:
4
- 要想返回 "Goodnight Ladies" 字符串中从位置 11 开始的 6 个字符长的字符串,请输入:
expr substr "Goodnight Ladies" 11 6
显示以下内容:
Ladies
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- Linux中expr命令
- Linux shell命令中expr
- Linux中expr命令 (转)
- Linux expr 命令详解
- Linux expr 命令详解
- Linux系统--expr命令
- linux 命令,expr
- Linux expr 命令详解
- Linux 的expr命令
- linux expr命令
- linux expr命令
- linux之expr命令
- Linux expr命令
- 图解Linux命令之--expr命令
- TCP为什么采用3次握手?
- 存储方面一些专业术语解释,个人整理(不断更新)
- Linux命令中最cool的十大成员
- HDU-3397 Sequence operation
- vs2012中 build、compile,debug区别
- Linux中expr命令
- 圆角定制,定制四周圆角边框
- 写好SCI论文的语言技巧 --- 学术英语的表达 ---- 主动与被动语态如何取舍
- 喻红叶《Java并发-ReentrantReadWriteLock源码分析》
- Java线程:线程栈模型与线程的变量
- OBD芯片应用开发手册 OBD2开发 内部资料分享 汽车电子通讯开发TDA61 TDA66芯片
- Qt---QFrame
- android之ION内存储器管理器
- windows下用eclipse-cpp-europa 编译、运行c程序