|
|
3 Z* |) q* C$ f3 o# o/ V8 L expr是Linux系统中的命令,可用于整数值的计算机字符串的操作,那么expr命令具体有哪些用途呢?下面小编将针对expr命令在Linux上的使用给大家做个详细介绍,一起来学习下吧。
5 \: H% g2 M& D; W1 g. R$ n1 _ 字串长度 b- y$ H. _! X- n
# expr length “this is a test”- ^) |8 {& v. L1 a. L
14) @$ T2 C7 g' Q7 Q
数字求商数' m% |6 J& [( ~* z
# expr 14 % 92 r" D( v1 w, @ G( o9 ]8 k2 ]8 |) Q
5" Y* e& `# ^3 \! {5 h
从位置处抓取字串8 ^6 d) C T, O! R9 I( ^
# expr substr “this is a test” 3 5
( M+ R. m7 m' l o* d. Z is is
# C7 J/ m- u7 K- s& L4 x 数字串 only the first character# Z$ h( O! {( d: x7 w) v) \5 e+ d
# expr index “testforthegame” e9 {: i- D8 C) M+ M' w5 ?
2
$ `3 `. u- _7 _* z6 s, ~/ v 字串真实重现
1 v- o4 B- s. B4 f# l # expr quote thisisatestformela9 G1 N& R* G1 D& ~, n* }3 p4 X
thisisatestformela
- y+ u$ n- r) e! b: R expr命令是一个手工命令行计数器,用于在UNIX/LINUX下求表达式变量的值,一般用于整数值,也可用于字符串。- b0 l9 l) w% ]- g6 q- [" P" g
–格式为:( M" v3 m) \5 Z) P Q( S$ g, N: c
expr Expression(命令读入Expression 参数,计算它的值,然后将结果写入到标准输出). p4 N$ w2 w$ b: N' `- z: _& F1 c% \
–参数应用规则:
0 ~% e3 Q, F2 r1 Q5 @5 e 用空格隔开每个项;: |/ W9 U. \$ ^8 R( b# k
用 \ (反斜杠) 放在 shell 特定的字符前面;
8 ~; i5 E. m3 d 对包含空格和其他特殊字符的字符串要用引号括起来
0 Y0 X" m$ w8 ^+ r! Y& U expr用法实例讲解:4 l' S6 {1 T$ D5 A8 ]0 N, I3 H8 }
(1)计算字串长度
3 I8 Z# b2 i# Y/ `% K% J$ j3 Z # expr length “this is a test”
' j. A* o+ C5 D D, V1 X; P& _ 14
" w6 p5 }3 E _) c (2)抓取字串 j% k# @- t+ o/ _
# expr substr “this is a test” 3 5
+ p# x( d9 d5 D1 v3 F3 Z is is) u. c2 t y0 @3 m2 n
(3)抓取第一个字符数字串出现的位置8 I7 ?) u. A5 C X
# expr index “sarasara” a6 A' b" F5 t4 B
2, k( q% Q0 f2 Z+ t
(4)字串真实重现
; U e$ T5 l3 i # expr quote sara
% k/ V4 B1 T5 k2 V sara
$ `/ X1 F/ L) p/ A* f/ J5 y9 Z3 Q (5)整数运算
2 \, Z& a4 }$ U. y* q e+ J3 ? # expr 14 % 9; ~5 e! f4 b b9 D" Q
51 y$ Y7 [+ H0 Q$ M2 {/ n
# expr 10 + 10
2 [7 h) ]- Y5 g- ~) ? 20" b( U: ` [. K2 m& s
# expr 1000 + 900, K! h) [- k) ^! E( h
19001 x" C8 g- K3 g# L( a
# expr 30 / 3 / 25 v' j7 r. D" a' }, ~
5
4 v9 c& T4 G/ b3 _- F) e # expr 30 \* 3 (使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义)4 f1 T; N8 Y" I: e
90
% F: c$ e8 e4 R& q" m4 a # expr 30 * 38 N3 e3 V6 E1 `2 _$ c
expr: Syntax error+ M, C4 t9 Z1 N. Y3 y# \
(6)增量计数" Q# G. v7 R/ [- @0 ^
说明:expr在循环中用于增量计算。笔记本系统下载cjghost.com/soft_list/2_21-1.html先将变量初始化为0,然后循环值加1,反引号的用法为命令替代。
[8 f. Z0 x3 u! a) W! l$ F+ d. V 》 LOOP=0; X" C9 j0 ]6 E7 @6 h5 Z& r2 {; Q D
》 LOOP=`expr $LOOP + 1`
- M* C8 c. S% r4 t8 Y (7)数值测试3 i# _6 r) Z) S, ~/ p/ o1 {! }+ _
说明:用expr测试一个数。如果试图计算非整数,则会返回错误。
t0 _* e" [8 f @) v4 c # rr=3.46 E4 U8 s2 q% D9 }& `, t ^
# expr $rr + 1, K2 P. J6 V2 R4 g
expr: non-numeric argument( |. A% a# R* q! t4 B0 e
# rr=5
; `# t: q- ?9 ^5 p) k8 G # expr $rr + 1- U; a/ P5 `1 m2 V4 Q. |3 [( [3 X
6
" [# K' {! }# ^* {) w. S, b/ C (8)模式匹配# f' v$ m% z4 l1 T9 \$ w
说明:expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任何字符重复0次或多次。
- k8 r" `* z2 o6 {9 N # VALUE=account.doc
) o3 x* ~- f' ~ # expr $VALUE : ‘.*’
2 s) y- h* g( D5 x& Y0 l6 v; a 8
i. E! x7 N* ~$ a 在expr中可以使用字符串匹配操作,这里使用模式抽取.doc文件附属名。; V5 X# ~% G& d' D
$expr $VALUE : ‘\(.*\).doc’) z8 G, | q$ e' N
account9 q6 ~ O }; W0 k! [- g
上面就是Linux expr命令的用法介绍了,我们可以使用expr命令进行数字求商、字串真实重现、抓取字串等,相当于命令行计算器。 |
|