|
7 d% z) X! p* [: a expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。: e/ R! s9 f8 G: h0 U
字串长度
' P% ]" r/ s- F4 @. W+ m # expr length “this is a test”
* b" \$ l8 g& z' x 14
& {* i- b# @6 _0 a1 V$ J, p$ q 数字求商数
* O2 c. n$ t8 E6 r # expr 14 % 97 M* @' e. X* F% f6 ]" i2 G
5
8 E! H, a" P0 S& {. G+ ]2 Z( X 从位置处抓取字串
9 b7 Y; u5 ?3 F( E. n # expr substr “this is a test” 3 5& x2 I0 M! Y- Y3 B4 \6 \$ ^
is is
# x. t5 p' c/ \/ }- ^* I 数字串 only the first character
* C# O5 q$ x* f # expr index “testforthegame” e( O$ j4 c# S# j: N+ h4 n$ J2 ]
2% J1 x- _9 S0 c' @2 A
字串真实重现6 q; _2 s* O7 J, `. g
# expr quote thisisatestformela; R5 }% d- L! _. f; B5 e* m; ]
thisisatestformela
- N3 G) q9 i$ f. m n expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。
5 G/ @4 N: h% ?1 U# z –格式为:1 D: K2 {$ Q& ]' G1 u
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出)2 O1 p- X5 m# K* }# Q
–参数应用规则:
7 X9 W" c, Q& F 用空格隔开每个项;
9 h$ D, a; ?; R+ q: p 用 \ (反斜杠) 放在 shell 特定的字符前面;, s$ O' a( z% `, j+ H; |! r
对包含空格和其他特殊字符的字符串要用引号括起来; p; |& M7 u V0 G2 t: m
expr用法实例讲解:( L) r! L3 }1 U& X- p
(1)计算字串长度
+ p: L2 e& x5 b, b P # expr length “this is a test”
7 g9 o; n) t- y5 z3 D 14
6 G2 w6 X1 n* Z, b4 }7 n. R (2)抓取字串( W3 @% |* i. ~* w
# expr substr “this is a test” 3 5
/ x6 b8 ?0 c) l8 n# n3 D+ `) m' W is is
* @; E9 K' J: y( ~# s$ Z. a (3)抓取第一个字符数字串出现的位置
* }7 R$ I5 x7 k) ^ # expr index “sarasara” a: ~5 t# N% E% J. ]8 m' M
2& z1 j. H$ |) Y4 W8 x# y6 P
(4)字串真实重现) z4 ^. {6 t9 g- Q- ~$ y' F$ R& q9 Q
# expr quote sara
6 z0 {# P* U4 P sara
' u7 r4 r) e' l0 ^" `2 U' m2 F (5)整数运算0 B+ ?1 M1 C" j8 A0 V, u! g) \
# expr 14 % 93 z/ ~; b/ J# P) k) H [) k
5
0 Z) P/ L3 F8 G) z8 \' @! c # expr 10 + 10
% T ^: d( ~3 i1 d 20& g; B2 S- P3 @9 C6 z& [
# expr 1000 + 900
/ U. L! m6 @9 G; D- p( ^, \ 1900
/ F/ [. s- V* n9 l' p0 k/ w! Q8 B h # expr 30 / 3 / 2
% M" r3 s, `8 o4 [5 j" L5 W 5
* m9 F0 M H- r% m# ^, O( }& U7 R # expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)+ `/ Q5 t( |# T) k' J
90
! B: t- c( a& B. |5 w # expr 30 * 3
' C; T* G6 G+ ?# o expr: Syntax error
3 ]* C& ?3 ?0 e (6)增量计数
3 @ A( z. T1 g! g 说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
1 D6 e( _) w$ V: v 》 LOOP=0
& r% [8 N! P) B: D1 M6 y 》 LOOP=`expr $LOOP + 1`8 Z K3 |- r v9 | ?5 d
(7)数值测试
4 f5 W* H: m6 @5 f 说明:用expr测试一个数。如果试图计算非整数,则会返回错误。( E7 c" _/ m% T0 L
# rr=3.4
& v% E: \& E3 A. } r # expr $rr + 1: B- c3 O8 m* P8 y0 _" R
expr: non-numeric argument- \; f& z. P, C! q. @
# rr=54 Z% }; ~1 O) t) B% M, d; U
# expr $rr + 13 B9 o+ t! `" o6 P
6
. p$ @# u* [0 [ (8)模式匹配' |5 ^% z( D* ]" R% _2 u& M
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。/ ~6 {7 _3 P' P; O8 p
# VALUE=account.doc& S+ J4 z+ `& y$ [
# expr $VALUE : ‘.*’
% J2 W" D2 v5 h9 D 8
( l& Y, B! Y2 D0 ]) }! s 在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。" d0 _1 s3 G% M! v' m8 Q# Z
$expr $VALUE : ‘\(.*\).doc’
) W i2 }4 V9 Z account
6 f( X4 w1 i( ~' H) y# r/ k 上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|