|
# I+ n) W) c' x2 h
expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。, ?5 O8 e; f/ e/ y$ h- J
字串长度
3 }, Y, U8 v) u7 ]/ ~" x. J0 I # expr length “this is a test”. g' W' \/ y# u5 T0 O" w
14
$ L# w0 R/ {+ m2 ^ P2 s7 L 数字求商数
( u6 N' E( ] V {, P4 D: B # expr 14 % 9
! U2 y+ v7 y6 K& c+ L$ y2 O6 L 5
1 @& m. k+ ], `4 s 从位置处抓取字串& o# ^! K7 y& H4 N7 q
# expr substr “this is a test” 3 5
6 g1 q4 U. v5 s6 k0 S is is
i* o) J) G/ W" E 数字串 only the first character
/ h; M! J" d7 m) ^, ? # expr index “testforthegame” e7 U& g" x o8 w: b7 G
2* Z5 E/ J% t- u3 M
字串真实重现& X) _; r, [- @6 B+ v
# expr quote thisisatestformela! m$ F1 V/ e) d# G% e% H
thisisatestformela3 v: L* N( {& G, @$ O7 W6 H3 b, x c
expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
! n# u1 e; E5 i5 Y –格式为:
- W' E! x. w2 h" M8 d expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
9 H. N$ k9 r8 N9 }/ P, T) M4 s –参数应用规则:
& \- M2 m1 \4 `" J2 _ 用空格隔开每个项; j+ z/ e; `) |8 g p7 N, U* j* p
用 \ (反斜杠) 放在 shell 特定的字符前面;7 J& r e J+ Q
对包含空格和其他特殊字符的字符串要用引号括起来
4 `( q+ Z* E9 T- P expr用法实例讲解:2 V( ?, E) b. a% |" S
(1)计算字串长度5 H6 h! Z0 C) x9 h, ?; }+ W8 v
# expr length “this is a test”
C! ]& R# D7 W& Z1 E 148 t; P& s8 J; J* K6 L5 C
(2)抓取字串$ w6 y, C) a a9 ~: K2 z* @
# expr substr “this is a test” 3 56 J/ S" O: e/ P4 {! o
is is
+ I7 Q; F% k' `' D: G# D# D (3)抓取第一个字符数字串出现的位置
- k) j2 J; G# ~ n- J# l" F # expr index “sarasara” a0 i3 D# z: z4 p* h
2
; U+ r/ I; G& q8 G e& V2 I (4)字串真实重现! l; w2 A4 K1 o" e
# expr quote sara
2 @, ~7 R( Q" {/ I( l sara
% ~; T2 k* g% |8 a, L (5)整数运算
6 f: Z: v' I( f0 k1 c # expr 14 % 92 ?. e' e2 w; q4 T7 c+ H( m% T
5! Q* m9 D( c6 }9 r
# expr 10 + 100 x o. t5 |0 |
20
3 a) O' A* T @1 |1 b6 ? F # expr 1000 + 900
( D+ T5 E+ H: N1 ~" p 1900/ S' @. \9 |* P7 ], s& V
# expr 30 / 3 / 2
- F3 R: L' v( Z. \ 51 a9 z; h d( C
# expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)
) r; c4 @+ n# A1 G5 |+ @ 903 R* R" ]. e1 w9 Q$ [* G6 V$ l! }- H
# expr 30 * 32 B& \/ E$ g2 z* |! f
expr: Syntax error
5 c0 c& l2 O9 b0 K7 r& W (6)增量计数
: p) ]+ G7 A7 l# ?1 e5 d 说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
/ k8 h: s3 I4 T ?7 D; @6 \$ c 》 LOOP=03 {; z c" V) H5 C* k) B
》 LOOP=`expr $LOOP + 1`4 p9 j" m4 L4 F: s7 `* n
(7)数值测试
) {/ }% {, }: n0 x# v. x 说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
7 i1 \ s. i; \$ a # rr=3.4 |8 M8 q4 b9 X9 m
# expr $rr + 1
" W' j9 |( P( O1 ^: F expr: non-numeric argument
/ g/ H- c8 P p1 K; h1 t1 ~ # rr=5# `8 ]. x, k0 I U) X
# expr $rr + 1
$ c5 G8 @$ C; m" K6 Z; W; D 6* t" ^. R, b# T8 e
(8)模式匹配
9 p8 N" j, q5 u- u3 I: p5 p 说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
+ ?0 I# q) K$ |: C& n/ e7 ` # VALUE=account.doc& G0 z* I$ R3 n. C
# expr $VALUE : ‘.*’% @* \( Q) O5 ^+ ?) e1 M2 k
84 l6 C9 D! @- a
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。& N& o0 _& S9 t; {4 Z2 ~+ ^% s
$expr $VALUE : ‘\(.*\).doc’; [0 T7 i! _ d7 p2 \
account
2 ]# s8 i' F3 |1 I0 z n. H 上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|