expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
–格式为: expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出) –参数应用规则: 用空格隔开每个项; 用 / (反斜杠) 放在 shell 特定的字符前面; 对包含空格和其他特殊字符的字符串要用引号括起来–expr用法实例讲解:
(1)、计算字串长度 > expr length “this is a test” 14 (2)、抓取字串 > expr substr “this is a test” 3 5 is is (3)、抓取第一个字符数字串出现的位置 > expr index “sarasara” a 2 (4)、字串真实重现 > expr quote sara sara (5)、整数运算 > expr 14 % 9 5 > expr 10 + 10 20 > expr 1000 + 900 1900 > expr 30 / 3 / 2 5 > expr 30 /* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义) 90 > expr 30 * 3 expr: Syntax error (6)、增量计数 说明:expr在循环中用于增量计算。先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。 > LOOP=0 > LOOP=`expr $LOOP + 1` (7)、数值测试 说明:用expr测试一个数。如果试图计算非整数,则会返回错误。 > rr=3.4 > expr $rr + 1 expr: non-numeric argument > rr=5 > expr $rr + 1 6 (8)、模式匹配 说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。 > VALUE=account.doc > expr $VALUE : ‘.*’ 8 在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。 $expr $VALUE : ‘/(.*/).doc’ accounts