|
) s2 j& ~- A0 }! T# Y8 l8 | expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。
# T* H+ ]# T8 M9 { 字串长度
5 h" x; ]3 o' g0 p$ t: `1 Q # expr length “this is a test”; Y7 q9 y( G2 L
14, a5 [6 i" e) R9 ?
数字求商数: P2 K1 b- K- Z2 @, _
# expr 14 % 9+ M B2 _9 y1 Z: F7 b0 D
5) B% Y, {5 r* B# N- x: |) S
从位置处抓取字串
9 V) f1 Q( M% v# R # expr substr “this is a test” 3 5; E# {% V+ u( t, \
is is9 j6 S/ @% k3 ~( a1 U: D
数字串 only the first character
; o- n, O+ V, ?/ \! c. d, |# i # expr index “testforthegame” e* Q' r O' [3 V: b
2
( \8 n0 y2 } E- y2 i3 Q* F) ` 字串真实重现
( p! U+ m" d! c' Y, t+ V # expr quote thisisatestformela& n. a% d a% d! p
thisisatestformela
& z1 R# m( ?# }4 u) M$ n& b expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。0 t; S8 p7 X- z0 I; G' e
–格式为:. `1 a5 s/ i+ P. a
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)
) n$ P5 O$ u* z1 L7 h1 f/ T0 y –参数应用规则:+ ^+ G0 O5 ^- I" n+ n
用空格隔开每个项;* G1 i2 O, Z O" O+ X2 H
用 \ (反斜杠) 放在 shell 特定的字符前面;* b! P4 Z+ ~4 [
对包含空格和其他特殊字符的字符串要用引号括起来# \9 k: ]% G9 l0 k2 I% G: N
expr用法实例讲解:
: @: y* r" C6 W5 U (1)计算字串长度, ]! D4 ?0 W3 s m/ ?# E! W
# expr length “this is a test”
J) D- } p1 h4 {5 U 144 S7 Q& J2 {7 ?8 {
(2)抓取字串
9 w8 X1 H# @. G$ e9 V # expr substr “this is a test” 3 5
. V# m$ R3 i( N' z; M is is
3 j* F& m8 R. e3 e (3)抓取第一个字符数字串出现的位置& v# T+ W/ u; J. e! {" ]/ Z+ Q& t
# expr index “sarasara” a
& Y! x+ E; V4 Z8 G1 R, G( l- W 2
& E `7 q: K% Q* j' ], r (4)字串真实重现0 [9 H3 o: k" e! h! Z
# expr quote sara3 g* t3 a5 n% Q8 s2 T$ i# y7 Y
sara5 i) H: F! p' P1 v2 O7 q5 ~
(5)整数运算* Y: x# j2 Q- b$ @" Z* l
# expr 14 % 9
, X; ~ }' [6 @( g% Y4 l 5
# i4 j8 @/ C: Y$ O5 |% q6 Q+ @ # expr 10 + 10
7 X+ {3 `: P( _/ E: M 20, ?1 L0 f L2 B
# expr 1000 + 900% Z u3 T! ?9 \, s0 a/ p* {* w5 r- f
1900. v x7 w! k9 | @$ \
# expr 30 / 3 / 2
^2 y3 {( [$ y: z9 i 5: ~+ a u( s; J% m. H& P
# expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)9 \0 P4 B# z7 A. l' |+ K9 F# ~4 s
90$ i7 `" h. v! u$ t+ g8 v
# expr 30 * 3$ T2 X C4 d" d+ Y4 [
expr: Syntax error
. s7 a2 S @2 M- [ (6)增量计数" `* }! n2 V6 u; B5 l8 S& |
说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。' y3 Q* ?. G$ A& ~& v9 z
》 LOOP=0
1 o3 U2 b! ]0 V! T3 Q6 ?4 n- H 》 LOOP=`expr $LOOP + 1`
7 M3 l2 s' M; s8 G! y3 c (7)数值测试( x; c8 R* [0 g, j- ?
说明:用expr测试一个数。如果试图计算非整数,则会返回错误。" J$ {7 e/ O4 L1 I! B. d @/ _) y
# rr=3.4
6 c1 R q! N' g7 Q* M* K A o6 J+ q1 L # expr $rr + 1
2 h; m' `0 B. J expr: non-numeric argument
" m# ^) o! R+ s( X; Q8 G& J' ? # rr=5; P! o1 b6 G7 h- |; C+ Y
# expr $rr + 11 _6 j, \4 o8 F3 W+ ^1 V
6
$ ]' \+ D% w9 K$ D. n2 W (8)模式匹配' o. A; g* F! p5 T: D
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
. p# ]' d! |" V* T3 N2 V # VALUE=account.doc* _9 o" {. Z, t
# expr $VALUE : ‘.*’
$ b% \9 A6 i- G' ^ 88 s6 l7 m1 L! ?% Z
在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。
]9 N0 W7 O" ^* v1 u+ N0 b# x $expr $VALUE : ‘\(.*\).doc’
: a% u' S$ B2 i# |$ x account7 @+ l) ]' W0 I& B; ~4 t' O1 y
上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|