|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们!对文件、字符串和数字利用test下令。
对数字和字符串利用expr下令。
expr下令测试和实行数值输入。利用最初加入形态下令$?可测知test和expr,两者均以0暗示准确,1暗示前往毛病。
expr用法
expr下令一样平常用于整数值,但也可用于字符串。一样平常格局为:
exprargumentoperatorargument
expr也是一个手工下令行计数器。
#expr10+10
20
#expr1500+900
2500
#expr30/3
10
#expr30/3/2
5
(注重运算符摆布都有空格)
利用乘号时,必需用反斜线屏障其特定寄义。由于shell大概会曲解显现星号的意义。
#expr30*3
(准确操纵)
#expr5*4
增量计数
expr在轮回顶用于增量盘算。起首,轮回初始化为0,然后轮回值加1,反引号的用法意
即替换下令。最基础的一种是从(expr)下令承受输入并将之放进轮回变量。
#LOOP=0
#LOOP=`expr$LOOP+1`
数值测试
能够用expr测试一个数。假如试图盘算非整数,将前往毛病。
#rr=1.1
#expr$rr+1
expr:non-numericargument
$rr=2
#expr$rr+1
3
这里必要将一个值付与变量(不论其内容怎样),举行数值运算,并将输入导进dev/null,
然后测试最初下令形态,假如为0,证实这是一个数,其他则标明为非数值。
#value=12
#expr$value+10>/dev/null2>&1
#echo$?
0
这是一个数。
#value=hello
#expr$value+10>/dev/null2>&1
#echo$?
2
这是一个非数值字符。
expr也能够前往其自己的加入形态,不幸的是前往值与体系最初加入下令恰好相反,成
功前往1,任何其他值为有效或毛病。上面的例子测试两个字符串是不是相称,这里字符串为
“hello”和“hello”。
#value=hello
#expr$value="hello"
1
#echo$?
0
expr前往1。不要搅浑了,这标明乐成。如今查验其最初加入形态,前往0暗示测试乐成,
“hello”的确即是“hello”。
test用法
test一样平常有两种格局,即:testcondition或[condition]。利用方括号时,要注重在前提双方加上空格。
经常使用文件形态测试:
-d目次
-s文件长度年夜于0、非空
-f正轨文件
-w可写
-L标记毗连
-u文件有suid位设置
-r可读
-x可实行
-c字符设备文件
利用两种***测试文件scores.txt是不是可写并用最初加入形态测试是不是乐成。记着:0暗示乐成,其他为失利。
[root@localhost~]#ls-l
-rw-r--r--1rootroot5Sep2118:43scores.txt
[root@localhost~]#[-wscores.txt]
[root@localhostruby]#echo$?
0
[root@localhost~]#test-wscores.txt
[root@localhost~]#echo$?
0
注重,这个的是不是读、写、实行是依据以后用户对这个文件所具有的权限而言的。假如我们换另外一个用户,了局就纷歧定了。
测试时利用逻辑操纵符
-a逻辑与,操纵符双方均为真,了局为真,不然为假。
-o逻辑或,操纵符双方一边为真,了局为真,不然为假。
!逻辑否,前提为假,了局为真。
[root@localhost~]#ls-l
-rw-r--r--1rootroot0Sep2119:39a
-rw-r--r--1rootroot0Sep2119:39b
[root@localhost~]#[-wa-a-xb]
[root@localhost~]#echo$?
1
[root@localhost~]#[-wa-o-xb]
[root@localhost~]#echo$?
0
[root@localhost~]#[!-wa-o-xb]
[root@localhost~]#echo$?
1
字符串对照
=两个字符串相称。
!=两个字符串不等。
-z空串。
-n非空串。
[root@localhost~]#a=""
[root@localhost~]#[-z$a]
[root@localhostruby]#echo$?
0
[root@localhost~]#a="123"
[root@localhost~]#[-z$a]
[root@localhost~]#echo$?
1
[root@localhost~]#[-n$a]
[root@localhost~]#echo$?
0
测试数值
-eq数值相称。
-ne数值不相称。
-gt第一个数年夜于第二个数。
-lt第一个数小于第二个数。
-le第一个数小于即是第二个数。
-ge第一个数年夜于即是第二个数。
[root@localhost~]#["123"-eq"123"-a"123"-ge"100"]
[root@localhost~]#echo$?
0
[root@localhost~]#a=12
[root@localhost~]#b=10
[root@localhost~]#[$a-gt$b]
[root@localhost~]#echo$?
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的小伙伴们! |
|