expr返回1。不要混淆了,这表明成功。现在检验其最后退出状态,返回0表示测试成功, “hello”确实等于“hello”。
2014-08-12 13:41
267 查看
非原创, 摘自:《LINUX与UNIX Shell编程指南》
17.5 expr用法
expr命令一般用于整数值,但也可用于字符串。一般格式为:
expr argument operator argument
expr也是一个手工命令行计数器。
# expr 10 + 10
20
# expr 1500 + 900
2500
# expr 30 / 3
10
# expr 30 / 3 / 2
5
(注意运算符左右都有空格)
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
# expr 30 * 3
90
17.5.1 增量计数
expr在循环中用于增量计算。首先,循环初始化为0,然后循环值加1,反引号的用法意
即替代命令。最基本的一种是从(expr)命令接受输出并将之放入循环变量。
# LOOP=0
# LOOP=`expr $LOOP + 1`
17.5.2 数值测试
可以用expr测试一个数。如果试图计算非整数,将返回错误。
# rr=1.1
# expr $rr + 1
expr: non-numeric argument
$rr=2
# expr $rr + 1
3
(注意:这个例
4000
子与原文不同)
这里需要将一个值赋予变量(不管其内容如何),进行数值运算,并将输出导入dev/null,
然后测试最后命令状态,如果为0,证明这是一个数,其他则表明为非数值。
# value=12
# expr $value + 10 > /dev/null 2>&1
# echo $?
0
这是一个数。
# value=hello
# expr $value + 10 > /dev/null 2>&1
# echo $?
2
这是一个非数值字符。
expr也可以返回其本身的退出状态,不幸的是返回值与系统最后退出命令刚好相反,成
功返回1,任何其他值为无效或错误。下面的例子测试两个字符串是否相等,这里字符串为
“hello”和“hello”。
# value=hello
# expr $value = "hello"
1
# echo $?
0
expr返回1。不要混淆了,这表明成功。现在检验其最后退出状态,返回0表示测试成功,
“hello”确实等于“hello”。
17.5.3 模式匹配
expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任
何字符重复0次或多次。
# value=accounts.doc
# expr $value : '.*'
12
在expr中可以使用字符串匹配操作,这里使用模式. d o c抽取文件附属名。
# expr $value : '(.*).doc'
accounts
17.5 expr用法
expr命令一般用于整数值,但也可用于字符串。一般格式为:
expr argument operator argument
expr也是一个手工命令行计数器。
# expr 10 + 10
20
# expr 1500 + 900
2500
# expr 30 / 3
10
# expr 30 / 3 / 2
5
(注意运算符左右都有空格)
使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
# expr 30 * 3
90
17.5.1 增量计数
expr在循环中用于增量计算。首先,循环初始化为0,然后循环值加1,反引号的用法意
即替代命令。最基本的一种是从(expr)命令接受输出并将之放入循环变量。
# LOOP=0
# LOOP=`expr $LOOP + 1`
17.5.2 数值测试
可以用expr测试一个数。如果试图计算非整数,将返回错误。
# rr=1.1
# expr $rr + 1
expr: non-numeric argument
$rr=2
# expr $rr + 1
3
(注意:这个例
4000
子与原文不同)
这里需要将一个值赋予变量(不管其内容如何),进行数值运算,并将输出导入dev/null,
然后测试最后命令状态,如果为0,证明这是一个数,其他则表明为非数值。
# value=12
# expr $value + 10 > /dev/null 2>&1
# echo $?
0
这是一个数。
# value=hello
# expr $value + 10 > /dev/null 2>&1
# echo $?
2
这是一个非数值字符。
expr也可以返回其本身的退出状态,不幸的是返回值与系统最后退出命令刚好相反,成
功返回1,任何其他值为无效或错误。下面的例子测试两个字符串是否相等,这里字符串为
“hello”和“hello”。
# value=hello
# expr $value = "hello"
1
# echo $?
0
expr返回1。不要混淆了,这表明成功。现在检验其最后退出状态,返回0表示测试成功,
“hello”确实等于“hello”。
17.5.3 模式匹配
expr也有模式匹配功能。可以使用expr通过指定冒号选项计算字符串中字符数。.*意即任
何字符重复0次或多次。
# value=accounts.doc
# expr $value : '.*'
12
在expr中可以使用字符串匹配操作,这里使用模式. d o c抽取文件附属名。
# expr $value : '(.*).doc'
accounts
相关文章推荐
- shell脚本中函数调用的返回值,以及退出状态问题
- linux下hello—world驱动,做成功了,现在总结一下
- 为什么我的iPhone4s用pp助手一键越狱前三步都对,最后完成的时候进度条满了却没有成功的提示,直接退出了?
- c测试最后一题(改进:通过定义结构体返回多个值)
- 按Home按键退出应用后重新启动该应用无法返回到最后打开页面的解决方案
- 对于Ajax中xmlHttp.status状态返回值不等于200的解释
- 别太轻信测试脚本中返回的测试信息就判断脚本成功,需要核对数据库数据,日志信息才最真实
- phonegap的调用地理位的gps接口,还有人成功调用过啊,为什么我在手机上测试没有任何返回信息呢,求大神
- ecmai用户不成功问题(有点像登录成功了但是登录状态不改变,其实是登录成功后自动退出)
- spring下调用ajax进行异步检验,后台程序调试一致成功,但是返回前台就是不执行success
- main函数返回1表示程序正常退出
- SHELL学习——退出状态、测试(整数\字符串\ 文件\逻辑运算符)
- main 函数的返回值用于说明程序的退出状态
- 检测QQ在线状态脚本(20141022测试成功)
- 清除ssl状态C++6.0[原创:经过测试成功]
- 测试 delete,update ,用事物先测试一下,是不是想要返回的结果,不要 commit
- shell 函数的返回值和退出状态
- Activity的生命周期,状态保存,窗口显示,取得返回结果,安全退出
- Magento:Paypal付款不成功返回后不要清空购物车产品的解决方案
- 防止用户误操作返回键导致程序退出,监听back键的状态做统一处理