|
9 Y$ l( T9 U3 ^1 S% v( a expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。8 S7 K' u9 X& E5 v9 F
字串长度
3 w2 Y8 \4 {3 _# l( L4 C. E8 | # expr length “this is a test”
( ~0 ~1 ?& t4 n' @5 I# U% p 14
( b5 a; |* a$ W, V4 K/ W/ ]0 H 数字求商数
1 A$ r. V6 t9 }) K P # expr 14 % 9
8 B, C- W6 w0 ]+ l* Q 5
% ?, O' M2 a# Q+ H% \" {2 x# g7 Y7 L 从位置处抓取字串9 J4 h- ?8 X \6 [# J+ u- x
# expr substr “this is a test” 3 55 o1 H/ a @- S' `/ _
is is
$ z: p. m/ `3 i) M 数字串 only the first character5 T, }6 e; c' p2 T- E0 y0 p: X
# expr index “testforthegame” e
/ k8 k4 a( [: v& A 2% b# h; C" w. z' R# I# Z" s
字串真实重现, e0 H# s P6 s
# expr quote thisisatestformela
a2 K9 G: g0 Y$ I, p: o thisisatestformela3 F* s2 \5 x# j; K3 }
expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
; r4 x8 ^& k% ]$ W –格式为:2 S6 H# H! J+ s5 u
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
6 ~6 K- s5 m+ N Q1 i* n& u –参数应用规则:) H+ g7 \) U8 y! z6 H0 S0 M
用空格隔开每个项;
4 n" E5 c) l3 T, f5 G7 a7 l 用 \ (反斜杠) 放在 shell 特定的字符前面;
1 I( _% P) L" f5 C% _ 对包含空格和其他特殊字符的字符串要用引号括起来
1 z" f) O& c' K! v S) W expr用法实例讲解:
1 u; ^, B t( Z1 q/ X (1)计算字串长度
$ p; }. ~- m9 c) E% b$ S # expr length “this is a test”
( `+ F( q) l5 k3 P: d- H8 [ 14
' ]4 V, \8 f" t. E0 `) R2 ~% X (2)抓取字串
; R# z( p, w8 k7 D # expr substr “this is a test” 3 5
2 |' i& l# L5 e is is
6 i; T% l; |! ?5 l2 [ (3)抓取第一个字符数字串出现的位置
m9 @4 ?# U) T; G: i4 L" Y # expr index “sarasara” a/ ~/ U- Y/ f7 T( ~8 X
2
. {% S) {, M1 } (4)字串真实重现: G/ ]; q$ r, L, r2 [( b
# expr quote sara L ^; S( m) r4 ]
sara' O/ U1 u+ r( l) R1 S' _3 o, \2 F- n
(5)整数运算
9 l8 t0 ~0 `, E' F+ L( ^! Z # expr 14 % 9
8 n. Y1 W6 J# W6 l% I 57 ^ g ~' D @9 {
# expr 10 + 10 f" K' Z: c" W5 I1 ~0 U
20( b+ N0 ~3 W: U# \$ P8 T3 d+ s G' L7 w
# expr 1000 + 900& x1 Y+ F0 V3 v0 s* ?8 g
1900
4 U; \: A+ d( g. Z6 H x # expr 30 / 3 / 28 \9 x- A) `6 D
5+ ]) E: }4 k( j
# expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)( v& O) f# E5 v- H7 z& r# G
90
' G) @; S( \9 W# P* O # expr 30 * 36 | t6 `# C9 I
expr: Syntax error* Q) m5 z0 c9 j; C3 d2 Q$ D
(6)增量计数2 I$ z2 Q/ A% U# E2 e
说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。4 r% {8 l% w( \2 O5 l
》 LOOP=0. L; S. N. X5 A2 J* J5 S
》 LOOP=`expr $LOOP + 1`
8 w) v7 @1 s) D2 @- R& i1 V% [ (7)数值测试
0 T6 O4 R0 _1 H8 D* } 说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
3 \& o. @# ]) a) C* Q8 I # rr=3.4" l7 E3 y# u9 J/ z4 O9 {" \4 G. J
# expr $rr + 1! G7 u& X1 p% S) y
expr: non-numeric argument0 K) B6 T$ t0 n! h
# rr=5' t# g# v" |# o9 o
# expr $rr + 15 m* ]( j) N$ ^
6) s& \7 n% ]" W4 Z# o2 u' T0 [+ S
(8)模式匹配: o9 N+ S# I& M5 m( j8 G
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。: M: J2 p4 k, M) ^( z
# VALUE=account.doc
9 l! X; q2 K1 \8 b # expr $VALUE : ‘.*’
- X8 r0 L& n- Q: X' ?' _ 8+ |; S5 o4 C/ D0 H: D# s
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。
* i* a( T* J& J, N% I $expr $VALUE : ‘\(.*\).doc’6 ^4 R& F3 `( G& m
account
# H/ u5 t/ b- y+ L0 O+ D ^0 M( O, ^ 上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|