如何确认shell执行成功??
时间:2011-04-01
来源:互联网
今天在看书的时候,遇到一个数值循环的例子,在Ubuntu里结果总是不正确,在Sco Unix里才正确。
数值循环的例子:
#LOOP=1
#LOOP=`expr $LOOP + 1`
在Ubuntu里,echo $LOOP,结果总为 1+1,在Sco Unix里,结果才为2
查看了下各自当前用户的SHELL版本:echo $SHELL
Ubuntu :/bin/bash
Sco Unix:/bin/sh
参考网上搜索的部分资料:
在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数)
一般的,sh是bash的“子集”。
既然这样,那为啥在Ubuntu里不正确,在Sco Unix中是正确的呢?
另:
Ubuntu查看PASSWD文件,看到root用户的shell也是/bin/bash,但root用户返回的结果是正确的,2。
真奇怪。。
有没谁能解释下呢。。
数值循环的例子:
#LOOP=1
#LOOP=`expr $LOOP + 1`
在Ubuntu里,echo $LOOP,结果总为 1+1,在Sco Unix里,结果才为2
查看了下各自当前用户的SHELL版本:echo $SHELL
Ubuntu :/bin/bash
Sco Unix:/bin/sh
参考网上搜索的部分资料:
在一般的linux系统当中(如redhat),使用sh调用执行脚本相当于打开了bash的POSIX标准模式(等效于bash的 --posix 参数)
一般的,sh是bash的“子集”。
既然这样,那为啥在Ubuntu里不正确,在Sco Unix中是正确的呢?
另:
Ubuntu查看PASSWD文件,看到root用户的shell也是/bin/bash,但root用户返回的结果是正确的,2。
真奇怪。。
有没谁能解释下呢。。
作者: bzcy 发布时间: 2011-04-01
不要expr.
代码:
LOOP=$[LOOP+1]
作者: tusooa 发布时间: 2011-04-01
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28