|
|
q9 p7 |. h4 L) y7 x' L! A! }
expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。- j9 H( c$ C; ]& l% L" ]
字串长度' s; V$ Y4 h' b+ T
# expr length “this is a test”
( Z9 {$ K$ U* t4 w 14( u" D8 n' {3 q$ w! d4 J
数字求商数
3 R' Z( W& m. v2 a/ J # expr 14 % 92 ?! T6 W$ F$ [* o }# ?& P9 X2 S
5
+ J6 _3 {) ~. Q8 D7 f 从位置处抓取字串1 |, @; [8 x/ F) x2 V% ?. {
# expr substr “this is a test” 3 50 ]2 W/ L/ o4 v' ^; S0 B# }1 K1 U- a
is is
# m2 x: o) W8 a" S6 E v 数字串 only the first character
1 a7 x' e; q' Z# y # expr index “testforthegame” e
5 }+ R1 V# z0 l 2
4 F0 h) v S! x1 X( l9 q 字串真实重现
# R, K: F1 E, s0 t) g8 l# S # expr quote thisisatestformela
% {* M' s2 o# y: S thisisatestformela# e& B0 e6 a5 |
expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。- P; i+ c' _+ \2 y. v6 |
–格式为:1 L$ l3 k3 C2 y% b; n5 ~
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
, B/ D+ [$ j, O, u# w –参数应用规则:
& n/ z* n5 ~: K- O% H; B 用空格隔开每个项;, r, T9 a- R5 b1 x( l! s
用 \ (反斜杠) 放在 shell 特定的字符前面;6 k: l: |7 t' z/ q5 T/ e
对包含空格和其他特殊字符的字符串要用引号括起来1 _, h d5 I. W8 e" h0 T
expr用法实例讲解:
0 e$ b( k! S' p$ O+ K (1)计算字串长度
8 C$ b( V6 m' ?% r$ j4 x # expr length “this is a test”
' V/ z5 z5 s/ P" I4 p* d 14
3 {/ [# u- D1 y+ C" z (2)抓取字串: i. T: [. u! B# J! a9 U
# expr substr “this is a test” 3 5
; {* z& x4 e8 m1 R" H" _2 y is is4 i. j* E6 c `! V& F: R1 y
(3)抓取第一个字符数字串出现的位置, }" p' s. S: W& I7 U
# expr index “sarasara” a
9 b9 |3 x! @# y0 n- ~6 e 2( f Z6 k( E$ A% p5 o4 r/ f6 [
(4)字串真实重现1 n# Y! a( k& F$ S5 q( f
# expr quote sara
/ Y: V W {: C6 o0 C1 N' b$ j+ w0 K sara2 l5 \3 S8 W# J
(5)整数运算
. a6 `; g# I; @6 U- f/ i4 u/ j # expr 14 % 9+ h9 |7 i+ m3 C( C' w+ D
54 B$ ^7 N7 o2 r5 K$ \: m
# expr 10 + 10- \$ v" g9 J- e( k
20
* A" E: y" I/ T7 [# F1 k" u0 }( n1 p # expr 1000 + 9008 @. f: o+ s0 f$ `' o
1900
# E: m+ z Y( `5 M& g7 J # expr 30 / 3 / 2- ?2 \+ N" \9 H: K# I
5
$ R" w: A4 q+ U # expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义), x; }& h& \# X, f3 |5 p
90
: p9 [2 b, ^, ^ # expr 30 * 32 k, G0 y, I! J+ i9 \
expr: Syntax error, P3 ^; P; O4 d! E1 i2 w8 f
(6)增量计数
- j1 V5 p, C6 ^+ ^6 @( ^ 说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。8 N/ e2 G( k2 Y5 @! c
》 LOOP=0
, s c2 C @5 w 》 LOOP=`expr $LOOP + 1`
4 n, ^' \4 O+ {5 a (7)数值测试
5 d' z# t" t& @3 }6 B 说明:用expr测试一个数。如果试图计算非整数,则会返回错误。 p+ S' c, m9 v: k' x" w
# rr=3.4
% A/ [5 P, k5 o L- F, k+ P # expr $rr + 1/ N& ]: t3 N& Q& Z
expr: non-numeric argument
s& Z" a, _7 n' ^ # rr=5
( w. W) M, n; f( |) z # expr $rr + 1
/ s9 l( P6 {" E; Z" g! z' t 6- s7 H% d( O: ^# D7 M
(8)模式匹配9 u" D5 i: \% V( y: [
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
( m2 n: J+ j# Z1 f2 d) M3 z t # VALUE=account.doc% e9 ^: v0 a- l4 a" t* {2 f
# expr $VALUE : ‘.*’" J4 {, W: W! a- D2 V( c2 t/ O1 O
8; Z6 z% k6 A B! }8 P& S9 T- r' [
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。/ ?: N$ J. S, }3 z* U
$expr $VALUE : ‘\(.*\).doc’" v7 Z) d# P, ^
account3 T: ]4 J; e1 q+ d
上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|