+ -
当前位置:首页 → 问答吧 → 如何确认shell执行成功??

如何确认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。

真奇怪。。

有没谁能解释下呢。。

作者: bzcy   发布时间: 2011-04-01

不要expr.
代码:
LOOP=$[LOOP+1]

作者: tusooa   发布时间: 2011-04-01